diff options
author | Ignat Beresnev <ignat.beresnev@jetbrains.com> | 2023-11-10 11:46:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-10 11:46:54 +0100 |
commit | 8e5c63d035ef44a269b8c43430f43f5c8eebfb63 (patch) | |
tree | 1b915207b2b9f61951ddbf0ff2e687efd053d555 /dokka-subprojects/core | |
parent | a44efd4ba0c2e4ab921ff75e0f53fc9335aa79db (diff) | |
download | dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.gz dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.bz2 dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.zip |
Restructure the project to utilize included builds (#3174)
* Refactor and simplify artifact publishing
* Update Gradle to 8.4
* Refactor and simplify convention plugins and build scripts
Fixes #3132
---------
Co-authored-by: Adam <897017+aSemy@users.noreply.github.com>
Co-authored-by: Oleg Yukhnevich <whyoleg@gmail.com>
Diffstat (limited to 'dokka-subprojects/core')
75 files changed, 10067 insertions, 0 deletions
diff --git a/dokka-subprojects/core/.gitignore b/dokka-subprojects/core/.gitignore new file mode 100644 index 00000000..1e1b410b --- /dev/null +++ b/dokka-subprojects/core/.gitignore @@ -0,0 +1 @@ +src/main/resources/dokka/scripts/*.svg
\ No newline at end of file diff --git a/dokka-subprojects/core/api/dokka-core.api b/dokka-subprojects/core/api/dokka-core.api new file mode 100644 index 00000000..fffcb877 --- /dev/null +++ b/dokka-subprojects/core/api/dokka-core.api @@ -0,0 +1,4745 @@ +public final class org/jetbrains/dokka/ConfigurationJsonUtilsKt { + public static final fun DokkaConfigurationImpl (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfigurationImpl; + public static final fun GlobalDokkaConfiguration (Ljava/lang/String;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration; + public static final fun toCompactJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String; + public static final fun toCompactJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String; + public static final fun toJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String; + public static final fun toJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String; + public static final fun toPrettyJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String; + public static final fun toPrettyJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String; +} + +public final class org/jetbrains/dokka/ConfigurationKt { + public static final fun ExternalDocumentationLink (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static final fun ExternalDocumentationLink (Ljava/net/URL;Ljava/net/URL;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static synthetic fun ExternalDocumentationLink$default (Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static synthetic fun ExternalDocumentationLink$default (Ljava/net/URL;Ljava/net/URL;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static final fun apply (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/GlobalDokkaConfiguration;)Lorg/jetbrains/dokka/DokkaConfiguration; + public static final fun build (Ljava/lang/Iterable;)Ljava/util/List; +} + +public final class org/jetbrains/dokka/CoreExtensions { + public static final field INSTANCE Lorg/jetbrains/dokka/CoreExtensions; + public final fun getDocumentableMerger ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getDocumentableToPageTranslator ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getDocumentableTransformer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getGeneration ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getPageTransformer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getPostActions ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getPreGenerationCheck ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getRenderer ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public final fun getSourceToDocumentableTranslator ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; +} + +public final class org/jetbrains/dokka/DefaultExternalLinksKt { + public static final fun androidSdk (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static final fun androidX (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static final fun jdk (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;I)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static final fun kotlinStdlib (Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; +} + +public abstract interface class org/jetbrains/dokka/DokkaBootstrap { + public abstract fun configure (Ljava/lang/String;Ljava/util/function/BiConsumer;)V + public abstract fun generate ()V +} + +public final class org/jetbrains/dokka/DokkaBootstrapImpl : org/jetbrains/dokka/DokkaBootstrap { + public fun <init> ()V + public fun configure (Ljava/lang/String;Ljava/util/function/BiConsumer;)V + public final fun configure (Lorg/jetbrains/dokka/utilities/DokkaLogger;Lorg/jetbrains/dokka/DokkaConfigurationImpl;)V + public fun generate ()V +} + +public final class org/jetbrains/dokka/DokkaBootstrapImpl$DokkaProxyLogger : org/jetbrains/dokka/utilities/DokkaLogger { + public fun <init> (Ljava/util/function/BiConsumer;)V + public fun debug (Ljava/lang/String;)V + public fun error (Ljava/lang/String;)V + public final fun getConsumer ()Ljava/util/function/BiConsumer; + public fun getErrorsCount ()I + public fun getWarningsCount ()I + public fun info (Ljava/lang/String;)V + public fun progress (Ljava/lang/String;)V + public fun setErrorsCount (I)V + public fun setWarningsCount (I)V + public fun warn (Ljava/lang/String;)V +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration : java/io/Serializable { + public abstract fun getCacheRoot ()Ljava/io/File; + public abstract fun getDelayTemplateSubstitution ()Z + public abstract fun getFailOnWarning ()Z + public abstract fun getFinalizeCoroutines ()Z + public abstract fun getIncludes ()Ljava/util/Set; + public abstract fun getModuleName ()Ljava/lang/String; + public abstract fun getModuleVersion ()Ljava/lang/String; + public abstract fun getModules ()Ljava/util/List; + public abstract fun getOfflineMode ()Z + public abstract fun getOutputDir ()Ljava/io/File; + public abstract fun getPluginsClasspath ()Ljava/util/List; + public abstract fun getPluginsConfiguration ()Ljava/util/List; + public abstract fun getSourceSets ()Ljava/util/List; + public abstract fun getSuppressInheritedMembers ()Z + public abstract fun getSuppressObviousFunctions ()Z +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration$DokkaModuleDescription : java/io/Serializable { + public abstract fun getIncludes ()Ljava/util/Set; + public abstract fun getName ()Ljava/lang/String; + public abstract fun getRelativePathToOutputDirectory ()Ljava/io/File; + public abstract fun getSourceOutputDirectory ()Ljava/io/File; +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet : java/io/Serializable { + public abstract fun getAnalysisPlatform ()Lorg/jetbrains/dokka/Platform; + public abstract fun getApiVersion ()Ljava/lang/String; + public abstract fun getClasspath ()Ljava/util/List; + public abstract fun getDependentSourceSets ()Ljava/util/Set; + public abstract fun getDisplayName ()Ljava/lang/String; + public abstract fun getDocumentedVisibilities ()Ljava/util/Set; + public abstract fun getExternalDocumentationLinks ()Ljava/util/Set; + public abstract fun getIncludeNonPublic ()Z + public abstract fun getIncludes ()Ljava/util/Set; + public abstract fun getJdkVersion ()I + public abstract fun getLanguageVersion ()Ljava/lang/String; + public abstract fun getNoJdkLink ()Z + public abstract fun getNoStdlibLink ()Z + public abstract fun getPerPackageOptions ()Ljava/util/List; + public abstract fun getReportUndocumented ()Z + public abstract fun getSamples ()Ljava/util/Set; + public abstract fun getSkipDeprecated ()Z + public abstract fun getSkipEmptyPackages ()Z + public abstract fun getSourceLinks ()Ljava/util/Set; + public abstract fun getSourceRoots ()Ljava/util/Set; + public abstract fun getSourceSetID ()Lorg/jetbrains/dokka/DokkaSourceSetID; + public abstract fun getSuppressedFiles ()Ljava/util/Set; +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink : java/io/Serializable { + public static final field Companion Lorg/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion; + public abstract fun getPackageListUrl ()Ljava/net/URL; + public abstract fun getUrl ()Ljava/net/URL; +} + +public final class org/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink$Companion { +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration$PackageOptions : java/io/Serializable { + public abstract fun getDocumentedVisibilities ()Ljava/util/Set; + public abstract fun getIncludeNonPublic ()Z + public abstract fun getMatchingRegex ()Ljava/lang/String; + public abstract fun getReportUndocumented ()Ljava/lang/Boolean; + public abstract fun getSkipDeprecated ()Z + public abstract fun getSuppress ()Z +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration$PluginConfiguration : java/io/Serializable { + public abstract fun getFqPluginName ()Ljava/lang/String; + public abstract fun getSerializationFormat ()Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; + public abstract fun getValues ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/DokkaConfiguration$SerializationFormat : java/lang/Enum, java/io/Serializable { + public static final field JSON Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; + public static final field XML Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; + public static fun values ()[Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; +} + +public abstract interface class org/jetbrains/dokka/DokkaConfiguration$SourceLinkDefinition : java/io/Serializable { + public abstract fun getLocalDirectory ()Ljava/lang/String; + public abstract fun getRemoteLineSuffix ()Ljava/lang/String; + public abstract fun getRemoteUrl ()Ljava/net/URL; +} + +public final class org/jetbrains/dokka/DokkaConfiguration$Visibility : java/lang/Enum { + public static final field Companion Lorg/jetbrains/dokka/DokkaConfiguration$Visibility$Companion; + public static final field INTERNAL Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; + public static final field PACKAGE Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; + public static final field PRIVATE Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; + public static final field PROTECTED Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; + public static final field PUBLIC Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; + public static fun values ()[Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; +} + +public final class org/jetbrains/dokka/DokkaConfiguration$Visibility$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaConfiguration$Visibility; +} + +public abstract interface class org/jetbrains/dokka/DokkaConfigurationBuilder { + public abstract fun build ()Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/DokkaConfigurationImpl : org/jetbrains/dokka/DokkaConfiguration { + public fun <init> ()V + public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZ)V + public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Z + public final fun component11 ()Z + public final fun component12 ()Z + public final fun component13 ()Ljava/util/Set; + public final fun component14 ()Z + public final fun component15 ()Z + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/io/File; + public final fun component4 ()Ljava/io/File; + public final fun component5 ()Z + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZ)Lorg/jetbrains/dokka/DokkaConfigurationImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaConfigurationImpl;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;ZLjava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZZZLjava/util/Set;ZZILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaConfigurationImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getCacheRoot ()Ljava/io/File; + public fun getDelayTemplateSubstitution ()Z + public fun getFailOnWarning ()Z + public fun getFinalizeCoroutines ()Z + public fun getIncludes ()Ljava/util/Set; + public fun getModuleName ()Ljava/lang/String; + public fun getModuleVersion ()Ljava/lang/String; + public fun getModules ()Ljava/util/List; + public fun getOfflineMode ()Z + public fun getOutputDir ()Ljava/io/File; + public fun getPluginsClasspath ()Ljava/util/List; + public fun getPluginsConfiguration ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/List; + public fun getSuppressInheritedMembers ()Z + public fun getSuppressObviousFunctions ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/DokkaDefaults { + public static final field INSTANCE Lorg/jetbrains/dokka/DokkaDefaults; + public static final field delayTemplateSubstitution Z + public static final field failOnWarning Z + public static final field includeNonPublic Z + public static final field jdkVersion I + public static final field noAndroidSdkLink Z + public static final field noJdkLink Z + public static final field noStdlibLink Z + public static final field offlineMode Z + public static final field reportUndocumented Z + public static final field skipDeprecated Z + public static final field skipEmptyPackages Z + public static final field sourceSetDisplayName Ljava/lang/String; + public static final field sourceSetName Ljava/lang/String; + public static final field suppress Z + public static final field suppressGeneratedFiles Z + public static final field suppressInheritedMembers Z + public static final field suppressObviousFunctions Z + public final fun getAnalysisPlatform ()Lorg/jetbrains/dokka/Platform; + public final fun getCacheRoot ()Ljava/io/File; + public final fun getDocumentedVisibilities ()Ljava/util/Set; + public final fun getModuleName ()Ljava/lang/String; + public final fun getModuleVersion ()Ljava/lang/String; + public final fun getOutputDir ()Ljava/io/File; + public final fun getPluginsConfiguration ()Ljava/util/List; +} + +public class org/jetbrains/dokka/DokkaException : java/lang/RuntimeException { + public fun <init> (Ljava/lang/String;)V +} + +public final class org/jetbrains/dokka/DokkaGenerator { + public fun <init> (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;)V + public final fun generate ()V + public final fun initializePlugins (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/DokkaContext; + public static synthetic fun initializePlugins$default (Lorg/jetbrains/dokka/DokkaGenerator;Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/DokkaContext; +} + +public final class org/jetbrains/dokka/DokkaModuleDescriptionImpl : org/jetbrains/dokka/DokkaConfiguration$DokkaModuleDescription { + public fun <init> (Ljava/lang/String;Ljava/io/File;Ljava/util/Set;Ljava/io/File;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/io/File; + public final fun component3 ()Ljava/util/Set; + public final fun component4 ()Ljava/io/File; + public final fun copy (Ljava/lang/String;Ljava/io/File;Ljava/util/Set;Ljava/io/File;)Lorg/jetbrains/dokka/DokkaModuleDescriptionImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaModuleDescriptionImpl;Ljava/lang/String;Ljava/io/File;Ljava/util/Set;Ljava/io/File;ILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaModuleDescriptionImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getIncludes ()Ljava/util/Set; + public fun getName ()Ljava/lang/String; + public fun getRelativePathToOutputDirectory ()Ljava/io/File; + public fun getSourceOutputDirectory ()Ljava/io/File; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/DokkaSourceSetID : java/io/Serializable { + public fun <init> (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaSourceSetID; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaSourceSetID; + public fun equals (Ljava/lang/Object;)Z + public final fun getScopeId ()Ljava/lang/String; + public final fun getSourceSetName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/DokkaSourceSetImpl : org/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Z + public final fun component11 ()Z + public final fun component12 ()I + public final fun component13 ()Ljava/util/Set; + public final fun component14 ()Ljava/util/List; + public final fun component15 ()Ljava/util/Set; + public final fun component16 ()Ljava/lang/String; + public final fun component17 ()Ljava/lang/String; + public final fun component18 ()Z + public final fun component19 ()Z + public final fun component2 ()Lorg/jetbrains/dokka/DokkaSourceSetID; + public final fun component20 ()Ljava/util/Set; + public final fun component21 ()Lorg/jetbrains/dokka/Platform; + public final fun component22 ()Ljava/util/Set; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Ljava/util/Set; + public final fun component7 ()Ljava/util/Set; + public final fun component8 ()Z + public final fun component9 ()Z + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;)Lorg/jetbrains/dokka/DokkaSourceSetImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/DokkaSourceSetImpl;Ljava/lang/String;Lorg/jetbrains/dokka/DokkaSourceSetID;Ljava/util/List;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ZZZZILjava/util/Set;Ljava/util/List;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/Set;Lorg/jetbrains/dokka/Platform;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/DokkaSourceSetImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getAnalysisPlatform ()Lorg/jetbrains/dokka/Platform; + public fun getApiVersion ()Ljava/lang/String; + public fun getClasspath ()Ljava/util/List; + public fun getDependentSourceSets ()Ljava/util/Set; + public fun getDisplayName ()Ljava/lang/String; + public fun getDocumentedVisibilities ()Ljava/util/Set; + public fun getExternalDocumentationLinks ()Ljava/util/Set; + public fun getIncludeNonPublic ()Z + public fun getIncludes ()Ljava/util/Set; + public fun getJdkVersion ()I + public fun getLanguageVersion ()Ljava/lang/String; + public fun getNoJdkLink ()Z + public fun getNoStdlibLink ()Z + public fun getPerPackageOptions ()Ljava/util/List; + public fun getReportUndocumented ()Z + public fun getSamples ()Ljava/util/Set; + public fun getSkipDeprecated ()Z + public fun getSkipEmptyPackages ()Z + public fun getSourceLinks ()Ljava/util/Set; + public fun getSourceRoots ()Ljava/util/Set; + public fun getSourceSetID ()Lorg/jetbrains/dokka/DokkaSourceSetID; + public fun getSuppressedFiles ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/DokkaVersion { + public static final field INSTANCE Lorg/jetbrains/dokka/DokkaVersion; + public final fun getVersion ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/ExternalDocumentationLinkImpl : org/jetbrains/dokka/DokkaConfiguration$ExternalDocumentationLink { + public fun <init> (Ljava/net/URL;Ljava/net/URL;)V + public final fun component1 ()Ljava/net/URL; + public final fun component2 ()Ljava/net/URL; + public final fun copy (Ljava/net/URL;Ljava/net/URL;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl;Ljava/net/URL;Ljava/net/URL;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getPackageListUrl ()Ljava/net/URL; + public fun getUrl ()Ljava/net/URL; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/GlobalDokkaConfiguration { + public fun <init> (Ljava/util/List;Ljava/util/List;Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/util/List; + public final fun copy (Ljava/util/List;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/GlobalDokkaConfiguration;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration; + public fun equals (Ljava/lang/Object;)Z + public final fun getExternalDocumentationLinks ()Ljava/util/List; + public final fun getPerPackageOptions ()Ljava/util/List; + public final fun getSourceLinks ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface annotation class org/jetbrains/dokka/InternalDokkaApi : java/lang/annotation/Annotation { +} + +public final class org/jetbrains/dokka/PackageOptionsImpl : org/jetbrains/dokka/DokkaConfiguration$PackageOptions { + public fun <init> (Ljava/lang/String;ZLjava/lang/Boolean;ZZLjava/util/Set;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Ljava/util/Set; + public final fun copy (Ljava/lang/String;ZLjava/lang/Boolean;ZZLjava/util/Set;)Lorg/jetbrains/dokka/PackageOptionsImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/PackageOptionsImpl;Ljava/lang/String;ZLjava/lang/Boolean;ZZLjava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/PackageOptionsImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getDocumentedVisibilities ()Ljava/util/Set; + public fun getIncludeNonPublic ()Z + public fun getMatchingRegex ()Ljava/lang/String; + public fun getReportUndocumented ()Ljava/lang/Boolean; + public fun getSkipDeprecated ()Z + public fun getSuppress ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/Platform : java/lang/Enum { + public static final field Companion Lorg/jetbrains/dokka/Platform$Companion; + public static final field common Lorg/jetbrains/dokka/Platform; + public static final field js Lorg/jetbrains/dokka/Platform; + public static final field jvm Lorg/jetbrains/dokka/Platform; + public static final field native Lorg/jetbrains/dokka/Platform; + public static final field wasm Lorg/jetbrains/dokka/Platform; + public final fun getKey ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/Platform; + public static fun values ()[Lorg/jetbrains/dokka/Platform; +} + +public final class org/jetbrains/dokka/Platform$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/jetbrains/dokka/Platform; + public final fun getDEFAULT ()Lorg/jetbrains/dokka/Platform; +} + +public final class org/jetbrains/dokka/PluginConfigurationImpl : org/jetbrains/dokka/DokkaConfiguration$PluginConfiguration { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;Ljava/lang/String;)Lorg/jetbrains/dokka/PluginConfigurationImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/PluginConfigurationImpl;Ljava/lang/String;Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/PluginConfigurationImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getFqPluginName ()Ljava/lang/String; + public fun getSerializationFormat ()Lorg/jetbrains/dokka/DokkaConfiguration$SerializationFormat; + public fun getValues ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/SourceLinkDefinitionImpl : org/jetbrains/dokka/DokkaConfiguration$SourceLinkDefinition { + public static final field Companion Lorg/jetbrains/dokka/SourceLinkDefinitionImpl$Companion; + public fun <init> (Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/net/URL; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;)Lorg/jetbrains/dokka/SourceLinkDefinitionImpl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/SourceLinkDefinitionImpl;Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/SourceLinkDefinitionImpl; + public fun equals (Ljava/lang/Object;)Z + public fun getLocalDirectory ()Ljava/lang/String; + public fun getRemoteLineSuffix ()Ljava/lang/String; + public fun getRemoteUrl ()Ljava/net/URL; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/SourceLinkDefinitionImpl$Companion { + public final fun parseSourceLinkDefinition (Ljava/lang/String;)Lorg/jetbrains/dokka/SourceLinkDefinitionImpl; +} + +public final class org/jetbrains/dokka/Timer { + public final fun dump (Ljava/lang/String;)V + public static synthetic fun dump$default (Lorg/jetbrains/dokka/Timer;Ljava/lang/String;ILjava/lang/Object;)V + public final fun report (Ljava/lang/String;)V +} + +public abstract interface class org/jetbrains/dokka/generation/Generation { + public abstract fun generate (Lorg/jetbrains/dokka/Timer;)V + public abstract fun getGenerationName ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/generation/GenerationKt { + public static final fun exitGenerationGracefully (Ljava/lang/String;)Ljava/lang/Void; +} + +public final class org/jetbrains/dokka/generation/GracefulGenerationExit : java/lang/Throwable { + public fun <init> (Ljava/lang/String;)V + public final fun getReason ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/Callable { + public static final field Companion Lorg/jetbrains/dokka/links/Callable$Companion; + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/links/TypeReference; + public final fun component3 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;)Lorg/jetbrains/dokka/links/Callable; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/Callable;Ljava/lang/String;Lorg/jetbrains/dokka/links/TypeReference;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/Callable; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getParams ()Ljava/util/List; + public final fun getReceiver ()Lorg/jetbrains/dokka/links/TypeReference; + public fun hashCode ()I + public final fun signature ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/Callable$Companion { +} + +public final class org/jetbrains/dokka/links/DRI { + public static final field Companion Lorg/jetbrains/dokka/links/DRI$Companion; + public fun <init> ()V + public fun <init> (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;)V + public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/links/Callable; + public final fun component4 ()Lorg/jetbrains/dokka/links/DriTarget; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;)Lorg/jetbrains/dokka/links/DRI; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/links/Callable;Lorg/jetbrains/dokka/links/DriTarget;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/DRI; + public fun equals (Ljava/lang/Object;)Z + public final fun getCallable ()Lorg/jetbrains/dokka/links/Callable; + public final fun getClassNames ()Ljava/lang/String; + public final fun getExtra ()Ljava/lang/String; + public final fun getPackageName ()Ljava/lang/String; + public final fun getTarget ()Lorg/jetbrains/dokka/links/DriTarget; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/DRI$Companion { + public final fun getTopLevel ()Lorg/jetbrains/dokka/links/DRI; +} + +public final class org/jetbrains/dokka/links/DRIExtraContainer { + public fun <init> ()V + public fun <init> (Ljava/lang/String;)V + public synthetic fun <init> (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun encode ()Ljava/lang/String; + public final fun getData ()Ljava/lang/String; + public final fun getMap ()Ljava/util/Map; +} + +public abstract class org/jetbrains/dokka/links/DRIExtraProperty { + public fun <init> ()V + public final fun getKey ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/DRIKt { + public static final fun getDriOfAny ()Lorg/jetbrains/dokka/links/DRI; + public static final fun getDriOfUnit ()Lorg/jetbrains/dokka/links/DRI; + public static final fun getParent (Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/links/DRI; + public static final fun getSureClassNames (Lorg/jetbrains/dokka/links/DRI;)Ljava/lang/String; + public static final fun nextTarget (Lorg/jetbrains/dokka/links/DriTarget;)Lorg/jetbrains/dokka/links/DriTarget; + public static final fun withClass (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;)Lorg/jetbrains/dokka/links/DRI; + public static final fun withEnumEntryExtra (Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/links/DRI; + public static final fun withTargetToDeclaration (Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/links/DRI; +} + +public abstract class org/jetbrains/dokka/links/DriTarget { + public static final field Companion Lorg/jetbrains/dokka/links/DriTarget$Companion; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/DriTarget$Companion { +} + +public final class org/jetbrains/dokka/links/EnumEntryDRIExtra : org/jetbrains/dokka/links/DRIExtraProperty { + public static final field INSTANCE Lorg/jetbrains/dokka/links/EnumEntryDRIExtra; +} + +public final class org/jetbrains/dokka/links/JavaClassReference : org/jetbrains/dokka/links/TypeReference { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/links/JavaClassReference; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/JavaClassReference;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/JavaClassReference; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/Nullable : org/jetbrains/dokka/links/TypeReference { + public fun <init> (Lorg/jetbrains/dokka/links/TypeReference;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/TypeReference; + public final fun copy (Lorg/jetbrains/dokka/links/TypeReference;)Lorg/jetbrains/dokka/links/Nullable; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/Nullable;Lorg/jetbrains/dokka/links/TypeReference;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/Nullable; + public fun equals (Ljava/lang/Object;)Z + public final fun getWrapped ()Lorg/jetbrains/dokka/links/TypeReference; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/PointingToCallableParameters : org/jetbrains/dokka/links/DriTarget { + public fun <init> (I)V + public final fun component1 ()I + public final fun copy (I)Lorg/jetbrains/dokka/links/PointingToCallableParameters; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/PointingToCallableParameters;IILjava/lang/Object;)Lorg/jetbrains/dokka/links/PointingToCallableParameters; + public fun equals (Ljava/lang/Object;)Z + public final fun getParameterIndex ()I + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/PointingToDeclaration : org/jetbrains/dokka/links/DriTarget { + public static final field INSTANCE Lorg/jetbrains/dokka/links/PointingToDeclaration; +} + +public final class org/jetbrains/dokka/links/PointingToGenericParameters : org/jetbrains/dokka/links/DriTarget { + public fun <init> (I)V + public final fun component1 ()I + public final fun copy (I)Lorg/jetbrains/dokka/links/PointingToGenericParameters; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/PointingToGenericParameters;IILjava/lang/Object;)Lorg/jetbrains/dokka/links/PointingToGenericParameters; + public fun equals (Ljava/lang/Object;)Z + public final fun getParameterIndex ()I + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/RecursiveType : org/jetbrains/dokka/links/TypeReference { + public fun <init> (I)V + public final fun component1 ()I + public final fun copy (I)Lorg/jetbrains/dokka/links/RecursiveType; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/RecursiveType;IILjava/lang/Object;)Lorg/jetbrains/dokka/links/RecursiveType; + public fun equals (Ljava/lang/Object;)Z + public final fun getRank ()I + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/StarProjection : org/jetbrains/dokka/links/TypeReference { + public static final field INSTANCE Lorg/jetbrains/dokka/links/StarProjection; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/TypeConstructor : org/jetbrains/dokka/links/TypeReference { + public fun <init> (Ljava/lang/String;Ljava/util/List;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/links/TypeConstructor; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/TypeConstructor;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/TypeConstructor; + public fun equals (Ljava/lang/Object;)Z + public final fun getFullyQualifiedName ()Ljava/lang/String; + public final fun getParams ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/links/TypeParam : org/jetbrains/dokka/links/TypeReference { + public fun <init> (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/links/TypeParam; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/links/TypeParam;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/links/TypeParam; + public fun equals (Ljava/lang/Object;)Z + public final fun getBounds ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/links/TypeReference { + public static final field Companion Lorg/jetbrains/dokka/links/TypeReference$Companion; +} + +public final class org/jetbrains/dokka/links/TypeReference$Companion { +} + +public final class org/jetbrains/dokka/model/ActualTypealias : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/ActualTypealias$Companion; + public fun <init> (Lorg/jetbrains/dokka/model/DTypeAlias;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/DTypeAlias; + public final fun copy (Lorg/jetbrains/dokka/model/DTypeAlias;)Lorg/jetbrains/dokka/model/ActualTypealias; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ActualTypealias;Lorg/jetbrains/dokka/model/DTypeAlias;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ActualTypealias; + public fun equals (Ljava/lang/Object;)Z + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public final fun getTypeAlias ()Lorg/jetbrains/dokka/model/DTypeAlias; + public final fun getUnderlyingType ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ActualTypealias$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ActualTypealias;Lorg/jetbrains/dokka/model/ActualTypealias;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/AdditionalExtrasKt { + public static final fun toAdditionalModifiers (Ljava/util/Map;)Lorg/jetbrains/dokka/model/AdditionalModifiers; + public static final fun toAnnotations (Ljava/util/Map;)Lorg/jetbrains/dokka/model/Annotations; +} + +public final class org/jetbrains/dokka/model/AdditionalModifiers : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/AdditionalModifiers$Companion; + public fun <init> (Ljava/util/Map;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getContent ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I +} + +public final class org/jetbrains/dokka/model/AdditionalModifiers$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/AdditionalModifiers;Lorg/jetbrains/dokka/model/AdditionalModifiers;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/AncestryNode { + public fun <init> (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/AncestryNode;Ljava/util/List;)V + public final fun allImplementedInterfaces ()Ljava/util/List; + public final fun component1 ()Lorg/jetbrains/dokka/model/TypeConstructor; + public final fun component2 ()Lorg/jetbrains/dokka/model/AncestryNode; + public final fun component3 ()Ljava/util/List; + public final fun copy (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/AncestryNode;Ljava/util/List;)Lorg/jetbrains/dokka/model/AncestryNode; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/AncestryNode;Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/AncestryNode;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/AncestryNode; + public fun equals (Ljava/lang/Object;)Z + public final fun getInterfaces ()Ljava/util/List; + public final fun getSuperclass ()Lorg/jetbrains/dokka/model/AncestryNode; + public final fun getTypeConstructor ()Lorg/jetbrains/dokka/model/TypeConstructor; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/AnnotationParameterValue { +} + +public abstract interface class org/jetbrains/dokka/model/AnnotationTarget { +} + +public final class org/jetbrains/dokka/model/AnnotationValue : org/jetbrains/dokka/model/AnnotationParameterValue { + public fun <init> (Lorg/jetbrains/dokka/model/Annotations$Annotation;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Annotations$Annotation; + public final fun copy (Lorg/jetbrains/dokka/model/Annotations$Annotation;)Lorg/jetbrains/dokka/model/AnnotationValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/AnnotationValue;Lorg/jetbrains/dokka/model/Annotations$Annotation;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/AnnotationValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getAnnotation ()Lorg/jetbrains/dokka/model/Annotations$Annotation; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Annotations : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/Annotations$Companion; + public fun <init> (Ljava/util/Map;)V + public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/Annotations; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Annotations;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Annotations; + public fun equals (Ljava/lang/Object;)Z + public final fun getContent ()Ljava/util/Map; + public final fun getDirectAnnotations ()Ljava/util/Map; + public final fun getFileLevelAnnotations ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Annotations$Annotation { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Z + public final fun component4 ()Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;)Lorg/jetbrains/dokka/model/Annotations$Annotation; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Annotations$Annotation;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;ZLorg/jetbrains/dokka/model/Annotations$AnnotationScope;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Annotations$Annotation; + public fun equals (Ljava/lang/Object;)Z + public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public final fun getMustBeDocumented ()Z + public final fun getParams ()Ljava/util/Map; + public final fun getScope ()Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Annotations$AnnotationScope : java/lang/Enum { + public static final field DIRECT Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public static final field FILE Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public static final field GETTER Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public static final field SETTER Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; + public static fun values ()[Lorg/jetbrains/dokka/model/Annotations$AnnotationScope; +} + +public final class org/jetbrains/dokka/model/Annotations$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/Annotations;Lorg/jetbrains/dokka/model/Annotations;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/ArrayValue : org/jetbrains/dokka/model/AnnotationParameterValue { + public fun <init> (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/model/ArrayValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ArrayValue;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ArrayValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/BooleanConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (Z)V + public final fun component1 ()Z + public final fun copy (Z)Lorg/jetbrains/dokka/model/BooleanConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/BooleanConstant;ZILjava/lang/Object;)Lorg/jetbrains/dokka/model/BooleanConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/BooleanValue : org/jetbrains/dokka/model/LiteralValue { + public fun <init> (Z)V + public final fun component1 ()Z + public final fun copy (Z)Lorg/jetbrains/dokka/model/BooleanValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/BooleanValue;ZILjava/lang/Object;)Lorg/jetbrains/dokka/model/BooleanValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Z + public fun hashCode ()I + public fun text ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/Bound : org/jetbrains/dokka/model/Projection { +} + +public abstract interface class org/jetbrains/dokka/model/Callable : org/jetbrains/dokka/model/WithAbstraction, org/jetbrains/dokka/model/WithIsExpectActual, org/jetbrains/dokka/model/WithSources, org/jetbrains/dokka/model/WithType, org/jetbrains/dokka/model/WithVisibility { + public abstract fun getReceiver ()Lorg/jetbrains/dokka/model/DParameter; +} + +public final class org/jetbrains/dokka/model/CheckedExceptions : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public static final field Companion Lorg/jetbrains/dokka/model/CheckedExceptions$Companion; + public fun <init> (Ljava/util/Map;)V + public final fun component1 ()Ljava/util/Map; + public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/CheckedExceptions; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/CheckedExceptions;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/CheckedExceptions; + public fun equals (Ljava/lang/Object;)Z + public final fun getExceptions ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ObviousMember;Lorg/jetbrains/dokka/model/ObviousMember;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/CheckedExceptions$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/CheckedExceptions;Lorg/jetbrains/dokka/model/CheckedExceptions;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public abstract interface class org/jetbrains/dokka/model/ClassKind { +} + +public final class org/jetbrains/dokka/model/ClassValue : org/jetbrains/dokka/model/AnnotationParameterValue { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/ClassValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ClassValue;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ClassValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getClassDRI ()Lorg/jetbrains/dokka/links/DRI; + public final fun getClassName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ComplexExpression : org/jetbrains/dokka/model/Expression { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/ComplexExpression; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ComplexExpression;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ComplexExpression; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/CompositeSourceSetID { + public fun <init> (Ljava/lang/Iterable;)V + public fun <init> (Ljava/util/Set;)V + public fun <init> (Lorg/jetbrains/dokka/DokkaSourceSetID;)V + public final fun contains (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Z + public final fun contains (Lorg/jetbrains/dokka/DokkaSourceSetID;)Z + public final fun copy (Ljava/util/Set;)Lorg/jetbrains/dokka/model/CompositeSourceSetID; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/CompositeSourceSetID; + public fun equals (Ljava/lang/Object;)Z + public final fun getAll ()Ljava/util/Set; + public final fun getMerged ()Lorg/jetbrains/dokka/DokkaSourceSetID; + public fun hashCode ()I + public final fun plus (Lorg/jetbrains/dokka/DokkaSourceSetID;)Lorg/jetbrains/dokka/model/CompositeSourceSetID; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Contravariance : org/jetbrains/dokka/model/Variance { + public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; + public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Contravariance; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Contravariance;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Contravariance; + public fun equals (Ljava/lang/Object;)Z + public fun getInner ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Covariance : org/jetbrains/dokka/model/Variance { + public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; + public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Covariance; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Covariance;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Covariance; + public fun equals (Ljava/lang/Object;)Z + public fun getInner ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/DAnnotation : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithConstructors, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Lorg/jetbrains/dokka/model/DObject; + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Ljava/util/List; + public final fun component13 ()Ljava/util/Set; + public final fun component14 ()Z + public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/Map; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DAnnotation; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DAnnotation;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/List;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DAnnotation; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject; + public fun getConstructors ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getGenerics ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DAnnotation; +} + +public final class org/jetbrains/dokka/model/DClass : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithAbstraction, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithConstructors, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Ljava/util/Map; + public final fun component12 ()Ljava/util/Map; + public final fun component13 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component14 ()Ljava/util/Map; + public final fun component15 ()Ljava/util/Set; + public final fun component16 ()Z + public final fun component17 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/util/Map; + public final fun component8 ()Ljava/util/Map; + public final fun component9 ()Lorg/jetbrains/dokka/model/DObject; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DClass; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DClass;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DClass; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject; + public fun getConstructors ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getGenerics ()Ljava/util/List; + public fun getModifier ()Ljava/util/Map; + public fun getName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getSupertypes ()Ljava/util/Map; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DClass; +} + +public abstract class org/jetbrains/dokka/model/DClasslike : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithIsExpectActual, org/jetbrains/dokka/model/WithScope, org/jetbrains/dokka/model/WithSources, org/jetbrains/dokka/model/WithVisibility { +} + +public final class org/jetbrains/dokka/model/DEnum : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithConstructors, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component10 ()Ljava/util/Map; + public final fun component11 ()Lorg/jetbrains/dokka/model/DObject; + public final fun component12 ()Ljava/util/List; + public final fun component13 ()Ljava/util/Map; + public final fun component14 ()Ljava/util/Set; + public final fun component15 ()Z + public final fun component16 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/Map; + public final fun component5 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component6 ()Ljava/util/Map; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/List; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnum; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DEnum;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DEnum; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject; + public fun getConstructors ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public final fun getEntries ()Ljava/util/List; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getSupertypes ()Ljava/util/Map; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnum; +} + +public final class org/jetbrains/dokka/model/DEnumEntry : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithScope, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/Set; + public final fun component9 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnumEntry; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DEnumEntry;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DEnumEntry; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DEnumEntry; +} + +public final class org/jetbrains/dokka/model/DFunction : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/Callable, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Lorg/jetbrains/dokka/model/DParameter; + public final fun component12 ()Ljava/util/Map; + public final fun component13 ()Ljava/util/Set; + public final fun component14 ()Z + public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Z + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component7 ()Ljava/util/Map; + public final fun component8 ()Ljava/util/Map; + public final fun component9 ()Lorg/jetbrains/dokka/model/Bound; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DFunction; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;ZLjava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Ljava/util/List;Lorg/jetbrains/dokka/model/DParameter;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DFunction; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getGenerics ()Ljava/util/List; + public fun getModifier ()Ljava/util/Map; + public fun getName ()Ljava/lang/String; + public final fun getParameters ()Ljava/util/List; + public fun getReceiver ()Lorg/jetbrains/dokka/model/DParameter; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getType ()Lorg/jetbrains/dokka/model/Bound; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public final fun isConstructor ()Z + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DFunction; +} + +public final class org/jetbrains/dokka/model/DInterface : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithCompanion, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component10 ()Lorg/jetbrains/dokka/model/DObject; + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Ljava/util/Map; + public final fun component13 ()Ljava/util/Set; + public final fun component14 ()Z + public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/Map; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DInterface; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DInterface;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/DObject;Ljava/util/List;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DInterface; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getCompanion ()Lorg/jetbrains/dokka/model/DObject; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getGenerics ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getSupertypes ()Ljava/util/Map; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DInterface; +} + +public final class org/jetbrains/dokka/model/DModule : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DModule; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DModule;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DModule; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getName ()Ljava/lang/String; + public final fun getPackages ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DModule; +} + +public final class org/jetbrains/dokka/model/DObject : org/jetbrains/dokka/model/DClasslike, org/jetbrains/dokka/model/WithSupertypes, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/util/Map; + public final fun component11 ()Ljava/util/Set; + public final fun component12 ()Z + public final fun component13 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/Map; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DObject; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DObject;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DObject; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getSupertypes ()Ljava/util/Map; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DObject; +} + +public final class org/jetbrains/dokka/model/DPackage : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithScope, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/util/Map; + public final fun component7 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component8 ()Ljava/util/Set; + public final fun component9 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DPackage; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DPackage;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DPackage; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getClasslikes ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getFunctions ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public final fun getPackageName ()Ljava/lang/String; + public fun getProperties ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public final fun getTypealiases ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DPackage; +} + +public final class org/jetbrains/dokka/model/DParameter : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithType, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Lorg/jetbrains/dokka/model/Bound; + public final fun component6 ()Ljava/util/Set; + public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DParameter; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DParameter; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getName ()Ljava/lang/String; + public fun getSourceSets ()Ljava/util/Set; + public fun getType ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DParameter; +} + +public final class org/jetbrains/dokka/model/DProperty : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/Callable, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component10 ()Lorg/jetbrains/dokka/model/DFunction; + public final fun component11 ()Ljava/util/Map; + public final fun component12 ()Ljava/util/Set; + public final fun component13 ()Ljava/util/List; + public final fun component14 ()Z + public final fun component15 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Ljava/util/Map; + public final fun component7 ()Lorg/jetbrains/dokka/model/Bound; + public final fun component8 ()Lorg/jetbrains/dokka/model/DParameter; + public final fun component9 ()Lorg/jetbrains/dokka/model/DFunction; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DProperty; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DProperty;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/DParameter;Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;Ljava/util/Map;Ljava/util/Set;Ljava/util/List;ZLorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DProperty; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getGenerics ()Ljava/util/List; + public final fun getGetter ()Lorg/jetbrains/dokka/model/DFunction; + public fun getModifier ()Ljava/util/Map; + public fun getName ()Ljava/lang/String; + public fun getReceiver ()Lorg/jetbrains/dokka/model/DParameter; + public final fun getSetter ()Lorg/jetbrains/dokka/model/DFunction; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getType ()Lorg/jetbrains/dokka/model/Bound; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun isExpectActual ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DProperty; +} + +public final class org/jetbrains/dokka/model/DTypeAlias : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/WithGenerics, org/jetbrains/dokka/model/WithSources, org/jetbrains/dokka/model/WithType, org/jetbrains/dokka/model/WithVisibility, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component10 ()Ljava/util/Map; + public final fun component11 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/model/Bound; + public final fun component4 ()Ljava/util/Map; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Ljava/util/Map; + public final fun component7 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component8 ()Ljava/util/Set; + public final fun component9 ()Ljava/util/List; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeAlias; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DTypeAlias;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Lorg/jetbrains/dokka/model/Bound;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;Ljava/util/List;Ljava/util/Map;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DTypeAlias; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getGenerics ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getSourceSets ()Ljava/util/Set; + public fun getSources ()Ljava/util/Map; + public fun getType ()Lorg/jetbrains/dokka/model/Bound; + public final fun getUnderlyingType ()Ljava/util/Map; + public fun getVisibility ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeAlias; +} + +public final class org/jetbrains/dokka/model/DTypeParameter : org/jetbrains/dokka/model/Documentable, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun <init> (Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Variance; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeParameter; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DTypeParameter;Lorg/jetbrains/dokka/model/Variance;Ljava/util/Map;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/List;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DTypeParameter; + public fun equals (Ljava/lang/Object;)Z + public final fun getBounds ()Ljava/util/List; + public fun getChildren ()Ljava/util/List; + public fun getDocumentation ()Ljava/util/Map; + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getName ()Ljava/lang/String; + public fun getSourceSets ()Ljava/util/Set; + public final fun getVariantTypeParameter ()Lorg/jetbrains/dokka/model/Variance; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/DTypeParameter; +} + +public final class org/jetbrains/dokka/model/DefaultValue : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/DefaultValue$Companion; + public fun <init> (Ljava/util/Map;)V + public final fun getExpression ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public final fun getValue ()Lorg/jetbrains/dokka/model/Expression; +} + +public final class org/jetbrains/dokka/model/DefaultValue$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/DefaultValue;Lorg/jetbrains/dokka/model/DefaultValue;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/DefinitelyNonNullable : org/jetbrains/dokka/model/Bound { + public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; + public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/DefinitelyNonNullable; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DefinitelyNonNullable;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DefinitelyNonNullable; + public fun equals (Ljava/lang/Object;)Z + public final fun getInner ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/DisplaySourceSet { + public fun <init> (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)V + public fun <init> (Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/lang/String;Lorg/jetbrains/dokka/Platform;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/CompositeSourceSetID; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/Platform; + public final fun copy (Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/lang/String;Lorg/jetbrains/dokka/Platform;)Lorg/jetbrains/dokka/model/DisplaySourceSet; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DisplaySourceSet;Lorg/jetbrains/dokka/model/CompositeSourceSetID;Ljava/lang/String;Lorg/jetbrains/dokka/Platform;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/DisplaySourceSet; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getPlatform ()Lorg/jetbrains/dokka/Platform; + public final fun getSourceSetIDs ()Lorg/jetbrains/dokka/model/CompositeSourceSetID; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/DisplaySourceSetKt { + public static final fun computeSourceSetIds (Ljava/lang/Iterable;)Ljava/util/Set; + public static final fun getSourceSetIDs (Ljava/lang/Iterable;)Ljava/util/List; + public static final fun toDisplaySourceSet (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Lorg/jetbrains/dokka/model/DisplaySourceSet; + public static final fun toDisplaySourceSets (Ljava/lang/Iterable;)Ljava/util/Set; +} + +public abstract class org/jetbrains/dokka/model/Documentable : org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/WithChildren { + public fun <init> ()V + public fun equals (Ljava/lang/Object;)Z + public abstract fun getChildren ()Ljava/util/List; + public abstract fun getDocumentation ()Ljava/util/Map; + public abstract fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public abstract fun getExpectPresentInSet ()Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public abstract fun getName ()Ljava/lang/String; + public abstract fun getSourceSets ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/DocumentableKt { + public static final fun dfs (Lorg/jetbrains/dokka/model/Documentable;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/model/Documentable; + public static final fun orEmpty (Ljava/util/Map;)Ljava/util/Map; + public static final fun withDri (Lorg/jetbrains/dokka/model/Variance;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/Variance; +} + +public abstract interface class org/jetbrains/dokka/model/DocumentableSource { + public abstract fun computeLineNumber ()Ljava/lang/Integer; + public abstract fun getPath ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/DocumentableUtilsKt { + public static final fun filter (Lorg/jetbrains/dokka/model/DTypeParameter;Ljava/util/Set;)Lorg/jetbrains/dokka/model/DTypeParameter; + public static final fun filtered (Ljava/util/Map;Ljava/util/Set;)Ljava/util/Map; + public static final fun filtered (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;)Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public static final fun isExtension (Lorg/jetbrains/dokka/model/Documentable;)Z +} + +public final class org/jetbrains/dokka/model/DoubleConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (D)V + public final fun component1 ()D + public final fun copy (D)Lorg/jetbrains/dokka/model/DoubleConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DoubleConstant;DILjava/lang/Object;)Lorg/jetbrains/dokka/model/DoubleConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()D + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/DoubleValue : org/jetbrains/dokka/model/LiteralValue { + public fun <init> (D)V + public final fun component1 ()D + public final fun copy (D)Lorg/jetbrains/dokka/model/DoubleValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DoubleValue;DILjava/lang/Object;)Lorg/jetbrains/dokka/model/DoubleValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()D + public fun hashCode ()I + public fun text ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Dynamic : org/jetbrains/dokka/model/Bound { + public static final field INSTANCE Lorg/jetbrains/dokka/model/Dynamic; +} + +public final class org/jetbrains/dokka/model/EnumValue : org/jetbrains/dokka/model/AnnotationParameterValue { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/EnumValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/EnumValue;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/EnumValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getEnumDri ()Lorg/jetbrains/dokka/links/DRI; + public final fun getEnumName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ExceptionInSupertypes : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/ExceptionInSupertypes$Companion; + public fun <init> (Ljava/util/Map;)V + public final fun component1 ()Ljava/util/Map; + public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/ExceptionInSupertypes; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ExceptionInSupertypes;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ExceptionInSupertypes; + public fun equals (Ljava/lang/Object;)Z + public final fun getExceptions ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ExceptionInSupertypes$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ExceptionInSupertypes;Lorg/jetbrains/dokka/model/ExceptionInSupertypes;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public abstract interface class org/jetbrains/dokka/model/Expression { +} + +public abstract class org/jetbrains/dokka/model/ExtraModifiers { + public static final field Companion Lorg/jetbrains/dokka/model/ExtraModifiers$Companion; + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getName ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$Companion { + public final fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/ExtraModifiers; +} + +public abstract class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers : org/jetbrains/dokka/model/ExtraModifiers { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Native : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Native; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Static : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Static; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$StrictFP : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$StrictFP; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Synchronized : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Synchronized; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transient : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transient; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transitive : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Transitive; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Volatile : org/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$JavaOnlyModifiers$Volatile; +} + +public abstract class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers : org/jetbrains/dokka/model/ExtraModifiers { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Const : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Const; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$CrossInline : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$CrossInline; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Data : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Data; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$External : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$External; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Fun : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Fun; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Infix : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Infix; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inline : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inline; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inner : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Inner; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$LateInit : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$LateInit; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$NoInline : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$NoInline; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Operator : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Operator; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Override : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Override; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Reified : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Reified; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Suspend : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Suspend; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$TailRec : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$TailRec; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Value : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$Value; +} + +public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$VarArg : org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$VarArg; +} + +public final class org/jetbrains/dokka/model/FloatConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (F)V + public final fun component1 ()F + public final fun copy (F)Lorg/jetbrains/dokka/model/FloatConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FloatConstant;FILjava/lang/Object;)Lorg/jetbrains/dokka/model/FloatConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/FloatValue : org/jetbrains/dokka/model/LiteralValue { + public fun <init> (F)V + public final fun component1 ()F + public final fun copy (F)Lorg/jetbrains/dokka/model/FloatValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FloatValue;FILjava/lang/Object;)Lorg/jetbrains/dokka/model/FloatValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()F + public fun hashCode ()I + public fun text ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/FunctionalTypeConstructor : org/jetbrains/dokka/model/TypeConstructor, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/FunctionalTypeConstructor; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FunctionalTypeConstructor;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;ZZLjava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/FunctionalTypeConstructor; + public fun equals (Ljava/lang/Object;)Z + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getPresentableName ()Ljava/lang/String; + public fun getProjections ()Ljava/util/List; + public fun hashCode ()I + public final fun isExtensionFunction ()Z + public final fun isSuspendable ()Z + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/FunctionalTypeConstructor; +} + +public final class org/jetbrains/dokka/model/GenericTypeConstructor : org/jetbrains/dokka/model/TypeConstructor, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/GenericTypeConstructor; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/GenericTypeConstructor;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/GenericTypeConstructor; + public fun equals (Ljava/lang/Object;)Z + public fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getPresentableName ()Ljava/lang/String; + public fun getProjections ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/GenericTypeConstructor; +} + +public final class org/jetbrains/dokka/model/ImplementedInterfaces : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/ImplementedInterfaces$Companion; + public fun <init> (Ljava/util/Map;)V + public final fun component1 ()Ljava/util/Map; + public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/ImplementedInterfaces; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ImplementedInterfaces;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ImplementedInterfaces; + public fun equals (Ljava/lang/Object;)Z + public final fun getInterfaces ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ImplementedInterfaces$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ImplementedInterfaces;Lorg/jetbrains/dokka/model/ImplementedInterfaces;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/InheritedMember : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/InheritedMember$Companion; + public fun <init> (Ljava/util/Map;)V + public final fun component1 ()Ljava/util/Map; + public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/InheritedMember; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/InheritedMember;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/InheritedMember; + public fun equals (Ljava/lang/Object;)Z + public final fun getInheritedFrom ()Ljava/util/Map; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I + public final fun isInherited (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Z + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/InheritedMember$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/InheritedMember;Lorg/jetbrains/dokka/model/InheritedMember;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/IntValue : org/jetbrains/dokka/model/LiteralValue { + public fun <init> (I)V + public final fun component1 ()I + public final fun copy (I)Lorg/jetbrains/dokka/model/IntValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IntValue;IILjava/lang/Object;)Lorg/jetbrains/dokka/model/IntValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()I + public fun hashCode ()I + public fun text ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/IntegerConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (J)V + public final fun component1 ()J + public final fun copy (J)Lorg/jetbrains/dokka/model/IntegerConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IntegerConstant;JILjava/lang/Object;)Lorg/jetbrains/dokka/model/IntegerConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Invariance : org/jetbrains/dokka/model/Variance { + public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; + public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Invariance; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Invariance;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Invariance; + public fun equals (Ljava/lang/Object;)Z + public fun getInner ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/IsAlsoParameter : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/model/IsAlsoParameter$Companion; + public fun <init> (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/model/IsAlsoParameter; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IsAlsoParameter;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/IsAlsoParameter; + public fun equals (Ljava/lang/Object;)Z + public final fun getInSourceSets ()Ljava/util/List; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/IsAlsoParameter$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/IsAlsoParameter;Lorg/jetbrains/dokka/model/IsAlsoParameter;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/IsVar : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public static final field INSTANCE Lorg/jetbrains/dokka/model/IsVar; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/IsVar;Lorg/jetbrains/dokka/model/IsVar;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/JavaClassKindTypes : java/lang/Enum, org/jetbrains/dokka/model/ClassKind { + public static final field ANNOTATION_CLASS Lorg/jetbrains/dokka/model/JavaClassKindTypes; + public static final field CLASS Lorg/jetbrains/dokka/model/JavaClassKindTypes; + public static final field ENUM_CLASS Lorg/jetbrains/dokka/model/JavaClassKindTypes; + public static final field ENUM_ENTRY Lorg/jetbrains/dokka/model/JavaClassKindTypes; + public static final field INTERFACE Lorg/jetbrains/dokka/model/JavaClassKindTypes; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/JavaClassKindTypes; + public static fun values ()[Lorg/jetbrains/dokka/model/JavaClassKindTypes; +} + +public abstract class org/jetbrains/dokka/model/JavaModifier : org/jetbrains/dokka/model/Modifier { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class org/jetbrains/dokka/model/JavaModifier$Abstract : org/jetbrains/dokka/model/JavaModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaModifier$Abstract; +} + +public final class org/jetbrains/dokka/model/JavaModifier$Empty : org/jetbrains/dokka/model/JavaModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaModifier$Empty; +} + +public final class org/jetbrains/dokka/model/JavaModifier$Final : org/jetbrains/dokka/model/JavaModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaModifier$Final; +} + +public final class org/jetbrains/dokka/model/JavaObject : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> ()V + public fun <init> (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/JavaObject; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/JavaObject;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/JavaObject; + public fun equals (Ljava/lang/Object;)Z + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/JavaObject; +} + +public abstract class org/jetbrains/dokka/model/JavaVisibility : org/jetbrains/dokka/model/Visibility { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class org/jetbrains/dokka/model/JavaVisibility$Default : org/jetbrains/dokka/model/JavaVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Default; +} + +public final class org/jetbrains/dokka/model/JavaVisibility$Private : org/jetbrains/dokka/model/JavaVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Private; +} + +public final class org/jetbrains/dokka/model/JavaVisibility$Protected : org/jetbrains/dokka/model/JavaVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Protected; +} + +public final class org/jetbrains/dokka/model/JavaVisibility$Public : org/jetbrains/dokka/model/JavaVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/JavaVisibility$Public; +} + +public final class org/jetbrains/dokka/model/JvmFieldKt { + public static final field JVM_FIELD_CLASS_NAMES Ljava/lang/String; + public static final field JVM_FIELD_PACKAGE_NAME Ljava/lang/String; + public static final fun isJvmField (Lorg/jetbrains/dokka/links/DRI;)Z + public static final fun isJvmField (Lorg/jetbrains/dokka/model/Annotations$Annotation;)Z +} + +public final class org/jetbrains/dokka/model/JvmNameKt { + public static final fun isJvmName (Lorg/jetbrains/dokka/links/DRI;)Z + public static final fun isJvmName (Lorg/jetbrains/dokka/model/Annotations$Annotation;)Z +} + +public final class org/jetbrains/dokka/model/KotlinClassKindTypes : java/lang/Enum, org/jetbrains/dokka/model/ClassKind { + public static final field ANNOTATION_CLASS Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static final field CLASS Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static final field ENUM_CLASS Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static final field ENUM_ENTRY Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static final field INTERFACE Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static final field OBJECT Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/model/KotlinClassKindTypes; + public static fun values ()[Lorg/jetbrains/dokka/model/KotlinClassKindTypes; +} + +public abstract class org/jetbrains/dokka/model/KotlinModifier : org/jetbrains/dokka/model/Modifier { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class org/jetbrains/dokka/model/KotlinModifier$Abstract : org/jetbrains/dokka/model/KotlinModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Abstract; +} + +public final class org/jetbrains/dokka/model/KotlinModifier$Empty : org/jetbrains/dokka/model/KotlinModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Empty; +} + +public final class org/jetbrains/dokka/model/KotlinModifier$Final : org/jetbrains/dokka/model/KotlinModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Final; +} + +public final class org/jetbrains/dokka/model/KotlinModifier$Open : org/jetbrains/dokka/model/KotlinModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Open; +} + +public final class org/jetbrains/dokka/model/KotlinModifier$Sealed : org/jetbrains/dokka/model/KotlinModifier { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinModifier$Sealed; +} + +public abstract class org/jetbrains/dokka/model/KotlinVisibility : org/jetbrains/dokka/model/Visibility { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class org/jetbrains/dokka/model/KotlinVisibility$Internal : org/jetbrains/dokka/model/KotlinVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Internal; +} + +public final class org/jetbrains/dokka/model/KotlinVisibility$Private : org/jetbrains/dokka/model/KotlinVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Private; +} + +public final class org/jetbrains/dokka/model/KotlinVisibility$Protected : org/jetbrains/dokka/model/KotlinVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Protected; +} + +public final class org/jetbrains/dokka/model/KotlinVisibility$Public : org/jetbrains/dokka/model/KotlinVisibility { + public static final field INSTANCE Lorg/jetbrains/dokka/model/KotlinVisibility$Public; +} + +public abstract class org/jetbrains/dokka/model/LiteralValue : org/jetbrains/dokka/model/AnnotationParameterValue { + public fun <init> ()V + public abstract fun text ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/LongValue : org/jetbrains/dokka/model/LiteralValue { + public fun <init> (J)V + public final fun component1 ()J + public final fun copy (J)Lorg/jetbrains/dokka/model/LongValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/LongValue;JILjava/lang/Object;)Lorg/jetbrains/dokka/model/LongValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()J + public fun hashCode ()I + public fun text ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/Modifier { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getName ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/NullValue : org/jetbrains/dokka/model/LiteralValue { + public static final field INSTANCE Lorg/jetbrains/dokka/model/NullValue; + public fun text ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Nullable : org/jetbrains/dokka/model/Bound { + public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; + public final fun copy (Lorg/jetbrains/dokka/model/Bound;)Lorg/jetbrains/dokka/model/Nullable; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/Nullable;Lorg/jetbrains/dokka/model/Bound;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/Nullable; + public fun equals (Ljava/lang/Object;)Z + public final fun getInner ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/ObviousMember : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public static final field INSTANCE Lorg/jetbrains/dokka/model/ObviousMember; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ObviousMember;Lorg/jetbrains/dokka/model/ObviousMember;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/PrimaryConstructorExtra : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public static final field INSTANCE Lorg/jetbrains/dokka/model/PrimaryConstructorExtra; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/PrimaryConstructorExtra;Lorg/jetbrains/dokka/model/PrimaryConstructorExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/PrimitiveJavaType : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/PrimitiveJavaType; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/PrimitiveJavaType;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/PrimitiveJavaType; + public fun equals (Ljava/lang/Object;)Z + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/PrimitiveJavaType; +} + +public abstract class org/jetbrains/dokka/model/Projection { +} + +public final class org/jetbrains/dokka/model/Star : org/jetbrains/dokka/model/Projection { + public static final field INSTANCE Lorg/jetbrains/dokka/model/Star; +} + +public final class org/jetbrains/dokka/model/StringConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/StringConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/StringConstant;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/StringConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/StringValue : org/jetbrains/dokka/model/LiteralValue { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/StringValue; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/StringValue;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/StringValue; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public fun text ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/TypeAliased : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; + public final fun component2 ()Lorg/jetbrains/dokka/model/Bound; + public final fun component3 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeAliased; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/TypeAliased;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/Bound;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/TypeAliased; + public fun equals (Ljava/lang/Object;)Z + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getInner ()Lorg/jetbrains/dokka/model/Bound; + public final fun getTypeAlias ()Lorg/jetbrains/dokka/model/Bound; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeAliased; +} + +public abstract class org/jetbrains/dokka/model/TypeConstructor : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget { + public abstract fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public abstract fun getPresentableName ()Ljava/lang/String; + public abstract fun getProjections ()Ljava/util/List; +} + +public final class org/jetbrains/dokka/model/TypeConstructorWithKind { + public fun <init> (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/ClassKind;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/TypeConstructor; + public final fun component2 ()Lorg/jetbrains/dokka/model/ClassKind; + public final fun copy (Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/ClassKind;)Lorg/jetbrains/dokka/model/TypeConstructorWithKind; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/TypeConstructorWithKind;Lorg/jetbrains/dokka/model/TypeConstructor;Lorg/jetbrains/dokka/model/ClassKind;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/TypeConstructorWithKind; + public fun equals (Ljava/lang/Object;)Z + public final fun getKind ()Lorg/jetbrains/dokka/model/ClassKind; + public final fun getTypeConstructor ()Lorg/jetbrains/dokka/model/TypeConstructor; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/TypeParameter : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeParameter; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/TypeParameter;Lorg/jetbrains/dokka/links/DRI;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/TypeParameter; + public fun equals (Ljava/lang/Object;)Z + public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getName ()Ljava/lang/String; + public final fun getPresentableName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/TypeParameter; +} + +public final class org/jetbrains/dokka/model/UnresolvedBound : org/jetbrains/dokka/model/Bound, org/jetbrains/dokka/model/AnnotationTarget, org/jetbrains/dokka/model/properties/WithExtraProperties { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/UnresolvedBound; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/UnresolvedBound;Ljava/lang/String;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/UnresolvedBound; + public fun equals (Ljava/lang/Object;)Z + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/model/UnresolvedBound; +} + +public abstract class org/jetbrains/dokka/model/Variance : org/jetbrains/dokka/model/Projection { + public abstract fun getInner ()Lorg/jetbrains/dokka/model/Bound; +} + +public abstract class org/jetbrains/dokka/model/Visibility { + public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getName ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/Void : org/jetbrains/dokka/model/Bound { + public static final field INSTANCE Lorg/jetbrains/dokka/model/Void; +} + +public abstract interface class org/jetbrains/dokka/model/WithAbstraction { + public abstract fun getModifier ()Ljava/util/Map; +} + +public abstract interface class org/jetbrains/dokka/model/WithChildren { + public abstract fun getChildren ()Ljava/util/List; +} + +public final class org/jetbrains/dokka/model/WithChildrenKt { + public static final fun asPrintableTree (Lorg/jetbrains/dokka/model/WithChildren;Lkotlin/jvm/functions/Function2;)Ljava/lang/String; + public static synthetic fun asPrintableTree$default (Lorg/jetbrains/dokka/model/WithChildren;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/String; + public static final fun dfs (Lorg/jetbrains/dokka/model/WithChildren;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/model/WithChildren; + public static final fun withDescendants (Lorg/jetbrains/dokka/model/WithChildren;)Lkotlin/sequences/Sequence; + public static final fun withDescendantsAny (Lorg/jetbrains/dokka/model/WithChildren;)Lkotlin/sequences/Sequence; + public static final fun withDescendantsProjection (Lorg/jetbrains/dokka/model/WithChildren;)Lkotlin/sequences/Sequence; +} + +public abstract interface class org/jetbrains/dokka/model/WithCompanion { + public abstract fun getCompanion ()Lorg/jetbrains/dokka/model/DObject; +} + +public abstract interface class org/jetbrains/dokka/model/WithConstructors { + public abstract fun getConstructors ()Ljava/util/List; +} + +public abstract interface class org/jetbrains/dokka/model/WithGenerics { + public abstract fun getGenerics ()Ljava/util/List; +} + +public abstract interface class org/jetbrains/dokka/model/WithIsExpectActual { + public abstract fun isExpectActual ()Z +} + +public abstract interface class org/jetbrains/dokka/model/WithScope { + public abstract fun getClasslikes ()Ljava/util/List; + public abstract fun getFunctions ()Ljava/util/List; + public abstract fun getProperties ()Ljava/util/List; +} + +public abstract interface class org/jetbrains/dokka/model/WithSources { + public abstract fun getSources ()Ljava/util/Map; +} + +public abstract interface class org/jetbrains/dokka/model/WithSupertypes { + public abstract fun getSupertypes ()Ljava/util/Map; +} + +public abstract interface class org/jetbrains/dokka/model/WithType { + public abstract fun getType ()Lorg/jetbrains/dokka/model/Bound; +} + +public abstract interface class org/jetbrains/dokka/model/WithVisibility { + public abstract fun getVisibility ()Ljava/util/Map; +} + +public final class org/jetbrains/dokka/model/doc/A : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/A; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/A;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/A; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Author : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Author; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Author;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Author; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/B : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/B; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/B;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/B; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Big : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Big; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Big;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Big; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/BlockQuote : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/BlockQuote; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/BlockQuote;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/BlockQuote; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Br : org/jetbrains/dokka/model/doc/DocTag { + public static final field INSTANCE Lorg/jetbrains/dokka/model/doc/Br; + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; +} + +public final class org/jetbrains/dokka/model/doc/Caption : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Caption; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Caption;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Caption; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Cite : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Cite; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Cite;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Cite; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/doc/Code : org/jetbrains/dokka/model/doc/DocTag { +} + +public final class org/jetbrains/dokka/model/doc/CodeBlock : org/jetbrains/dokka/model/doc/Code { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/CodeBlock; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CodeBlock;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CodeBlock; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/CodeInline : org/jetbrains/dokka/model/doc/Code { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/CodeInline; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CodeInline;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CodeInline; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Constructor : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Constructor; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Constructor;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Constructor; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/CustomDocTag : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/CustomDocTag; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CustomDocTag;Ljava/util/List;Ljava/util/Map;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CustomDocTag; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public final fun getName ()Ljava/lang/String; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/CustomTagWrapper : org/jetbrains/dokka/model/doc/NamedTagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/CustomTagWrapper; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/CustomTagWrapper;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/CustomTagWrapper; + public fun equals (Ljava/lang/Object;)Z + public fun getName ()Ljava/lang/String; + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Dd : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dd; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dd;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dd; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Deprecated : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Deprecated; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Deprecated;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Deprecated; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Description : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Description; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Description;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Description; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Dfn : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dfn; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dfn;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dfn; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Dir : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dir; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dir;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dir; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Div : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Div; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Div;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Div; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Dl : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dl; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dl;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dl; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/doc/DocTag : org/jetbrains/dokka/model/WithChildren { + public static final field Companion Lorg/jetbrains/dokka/model/doc/DocTag$Companion; + public abstract fun getParams ()Ljava/util/Map; +} + +public final class org/jetbrains/dokka/model/doc/DocTag$Companion { + public final fun contentTypeParam (Ljava/lang/String;)Ljava/util/Map; +} + +public final class org/jetbrains/dokka/model/doc/DocumentationLink : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/util/Map; + public final fun copy (Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/DocumentationLink; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/DocumentationLink;Lorg/jetbrains/dokka/links/DRI;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/DocumentationLink; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public final fun getDri ()Lorg/jetbrains/dokka/links/DRI; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/DocumentationNode : org/jetbrains/dokka/model/WithChildren { + public fun <init> (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lorg/jetbrains/dokka/model/doc/DocumentationNode; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/DocumentationNode;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/DocumentationNode; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Dt : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Dt; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Dt;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Dt; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Em : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Em; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Em;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Em; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Font : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Font; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Font;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Font; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Footer : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Footer; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Footer;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Footer; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Frame : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Frame; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Frame;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Frame; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/FrameSet : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/FrameSet; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/FrameSet;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/FrameSet; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/H1 : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H1; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H1;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H1; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/H2 : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H2; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H2;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H2; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/H3 : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H3; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H3;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H3; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/H4 : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H4; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H4;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H4; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/H5 : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H5; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H5;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H5; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/H6 : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/H6; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/H6;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/H6; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Head : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Head; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Head;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Head; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Header : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Header; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Header;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Header; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/HorizontalRule : org/jetbrains/dokka/model/doc/DocTag { + public static final field INSTANCE Lorg/jetbrains/dokka/model/doc/HorizontalRule; + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; +} + +public final class org/jetbrains/dokka/model/doc/Html : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Html; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Html;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Html; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/I : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/I; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/I;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/I; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/IFrame : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/IFrame; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/IFrame;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/IFrame; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Img : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Img; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Img;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Img; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Index : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Index; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Index;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Index; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Input : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Input; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Input;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Input; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Li : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Li; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Li;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Li; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Link : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Link; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Link;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Link; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Listing : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Listing; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Listing;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Listing; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Main : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Main; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Main;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Main; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Menu : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Menu; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Menu;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Menu; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Meta : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Meta; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Meta;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Meta; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/doc/NamedTagWrapper : org/jetbrains/dokka/model/doc/TagWrapper { + public abstract fun getName ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Nav : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Nav; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Nav;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Nav; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/NoFrames : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/NoFrames; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/NoFrames;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/NoFrames; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/NoScript : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/NoScript; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/NoScript;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/NoScript; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Ol : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Ol; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Ol;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Ol; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/P : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/P; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/P;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/P; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Param : org/jetbrains/dokka/model/doc/NamedTagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/Param; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Param;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Param; + public fun equals (Ljava/lang/Object;)Z + public fun getName ()Ljava/lang/String; + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Pre : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Pre; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Pre;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Pre; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Property : org/jetbrains/dokka/model/doc/NamedTagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/Property; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Property;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Property; + public fun equals (Ljava/lang/Object;)Z + public fun getName ()Ljava/lang/String; + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Receiver : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Receiver; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Receiver;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Receiver; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Return : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Return; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Return;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Return; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Sample : org/jetbrains/dokka/model/doc/NamedTagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/Sample; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Sample;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Sample; + public fun equals (Ljava/lang/Object;)Z + public fun getName ()Ljava/lang/String; + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Script : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Script; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Script;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Script; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Section : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Section; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Section;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Section; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/See : org/jetbrains/dokka/model/doc/NamedTagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/links/DRI; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/doc/See; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/See;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/See; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Lorg/jetbrains/dokka/links/DRI; + public fun getName ()Ljava/lang/String; + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Since : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Since; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Since;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Since; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Small : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Small; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Small;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Small; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Span : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Span; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Span;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Span; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Strikethrough : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Strikethrough; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Strikethrough;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Strikethrough; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Strong : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Strong; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Strong;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Strong; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Sub : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Sub; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Sub;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Sub; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Sup : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Sup; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Sup;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Sup; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Suppress : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Suppress; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Suppress;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Suppress; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/TBody : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/TBody; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/TBody;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/TBody; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/TFoot : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/TFoot; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/TFoot;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/TFoot; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/THead : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/THead; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/THead;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/THead; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Table : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Table; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Table;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Table; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/model/doc/TagWrapper : org/jetbrains/dokka/model/WithChildren { + public fun getChildren ()Ljava/util/List; + public abstract fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; +} + +public final class org/jetbrains/dokka/model/doc/Td : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Td; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Td;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Td; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Text : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/util/Map; + public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Text; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Text;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Text; + public fun equals (Ljava/lang/Object;)Z + public final fun getBody ()Ljava/lang/String; + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Th : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Th; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Th;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Th; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Throws : org/jetbrains/dokka/model/doc/NamedTagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/links/DRI; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/doc/Throws; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Throws;Lorg/jetbrains/dokka/model/doc/DocTag;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Throws; + public fun equals (Ljava/lang/Object;)Z + public final fun getExceptionAddress ()Lorg/jetbrains/dokka/links/DRI; + public fun getName ()Ljava/lang/String; + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Title : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Title; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Title;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Title; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Tr : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Tr; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Tr;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Tr; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Tt : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Tt; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Tt;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Tt; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/U : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/U; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/U;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/U; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Ul : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Ul; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Ul;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Ul; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Var : org/jetbrains/dokka/model/doc/DocTag { + public fun <init> ()V + public fun <init> (Ljava/util/List;Ljava/util/Map;)V + public synthetic fun <init> (Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/Map; + public final fun copy (Ljava/util/List;Ljava/util/Map;)Lorg/jetbrains/dokka/model/doc/Var; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Var;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Var; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getParams ()Ljava/util/Map; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/doc/Version : org/jetbrains/dokka/model/doc/TagWrapper { + public fun <init> (Lorg/jetbrains/dokka/model/doc/DocTag;)V + public final fun component1 ()Lorg/jetbrains/dokka/model/doc/DocTag; + public final fun copy (Lorg/jetbrains/dokka/model/doc/DocTag;)Lorg/jetbrains/dokka/model/doc/Version; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/doc/Version;Lorg/jetbrains/dokka/model/doc/DocTag;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/doc/Version; + public fun equals (Ljava/lang/Object;)Z + public fun getRoot ()Lorg/jetbrains/dokka/model/doc/DocTag; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class org/jetbrains/dokka/model/properties/CalculatedProperty : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public abstract fun calculate (Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/model/properties/CalculatedProperty$DefaultImpls { + public static fun mergeStrategyFor (Lorg/jetbrains/dokka/model/properties/CalculatedProperty;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public abstract interface class org/jetbrains/dokka/model/properties/ExtraProperty { + public abstract fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; +} + +public abstract interface class org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public abstract fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/model/properties/ExtraProperty$Key$DefaultImpls { + public static fun mergeStrategyFor (Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public abstract class org/jetbrains/dokka/model/properties/MergeStrategy { +} + +public final class org/jetbrains/dokka/model/properties/MergeStrategy$Fail : org/jetbrains/dokka/model/properties/MergeStrategy { + public fun <init> (Lkotlin/jvm/functions/Function0;)V + public final fun getError ()Lkotlin/jvm/functions/Function0; +} + +public final class org/jetbrains/dokka/model/properties/MergeStrategy$Full : org/jetbrains/dokka/model/properties/MergeStrategy { + public fun <init> (Lkotlin/jvm/functions/Function3;)V + public final fun getMerger ()Lkotlin/jvm/functions/Function3; +} + +public final class org/jetbrains/dokka/model/properties/MergeStrategy$Remove : org/jetbrains/dokka/model/properties/MergeStrategy { + public static final field INSTANCE Lorg/jetbrains/dokka/model/properties/MergeStrategy$Remove; +} + +public final class org/jetbrains/dokka/model/properties/MergeStrategy$Replace : org/jetbrains/dokka/model/properties/MergeStrategy { + public fun <init> (Lorg/jetbrains/dokka/model/properties/ExtraProperty;)V + public final fun getNewProperty ()Lorg/jetbrains/dokka/model/properties/ExtraProperty; +} + +public final class org/jetbrains/dokka/model/properties/PropertyContainer { + public static final field Companion Lorg/jetbrains/dokka/model/properties/PropertyContainer$Companion; + public final fun addAll (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/Map;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/properties/PropertyContainer;Ljava/util/Map;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun equals (Ljava/lang/Object;)Z + public final fun getMap ()Ljava/util/Map; + public fun hashCode ()I + public final fun minus (Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun plus (Lorg/jetbrains/dokka/model/properties/ExtraProperty;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/model/properties/PropertyContainer$Companion { + public final fun empty ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun withAll (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun withAll ([Lorg/jetbrains/dokka/model/properties/ExtraProperty;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; +} + +public final class org/jetbrains/dokka/model/properties/PropertyContainerKt { + public static final fun mergeExtras (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + public static final fun plus (Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/model/properties/ExtraProperty;)Lorg/jetbrains/dokka/model/properties/PropertyContainer; +} + +public abstract interface class org/jetbrains/dokka/model/properties/WithExtraProperties { + public abstract fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public abstract fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/pages/BasicTabbedContentType : java/lang/Enum, org/jetbrains/dokka/pages/TabbedContentType { + public static final field CONSTRUCTOR Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field ENTRY Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field EXTENSION_FUNCTION Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field EXTENSION_PROPERTY Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field FUNCTION Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field PROPERTY Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field TYPE Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static fun values ()[Lorg/jetbrains/dokka/pages/BasicTabbedContentType; +} + +public abstract interface class org/jetbrains/dokka/pages/ClasslikePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables { +} + +public final class org/jetbrains/dokka/pages/ClasslikePage$DefaultImpls { + public static fun getDocumentable (Lorg/jetbrains/dokka/pages/ClasslikePage;)Lorg/jetbrains/dokka/model/Documentable; +} + +public final class org/jetbrains/dokka/pages/ClasslikePageNode : org/jetbrains/dokka/pages/ClasslikePage { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun getChildren ()Ljava/util/List; + public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable; + public fun getDocumentables ()Ljava/util/List; + public fun getDri ()Ljava/util/Set; + public fun getEmbeddedResources ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ClasslikePageNode; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ClasslikePageNode; + public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage; +} + +public final class org/jetbrains/dokka/pages/CommentTable : org/jetbrains/dokka/pages/Style { + public static final field INSTANCE Lorg/jetbrains/dokka/pages/CommentTable; +} + +public final class org/jetbrains/dokka/pages/ContentBreakLine : org/jetbrains/dokka/pages/ContentNode { + public fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Set; + public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component3 ()Ljava/util/Set; + public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentBreakLine; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentBreakLine;Ljava/util/Set;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentBreakLine; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentBreakLine; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentBreakLine; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public abstract interface class org/jetbrains/dokka/pages/ContentCode : org/jetbrains/dokka/pages/ContentComposite { +} + +public final class org/jetbrains/dokka/pages/ContentCode$DefaultImpls { + public static fun getSourceSets (Lorg/jetbrains/dokka/pages/ContentCode;)Ljava/util/Set; + public static fun hasAnyContent (Lorg/jetbrains/dokka/pages/ContentCode;)Z +} + +public final class org/jetbrains/dokka/pages/ContentCodeBlock : org/jetbrains/dokka/pages/ContentCode { + public fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeBlock; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentCodeBlock;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentCodeBlock; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getLanguage ()Ljava/lang/String; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentCodeBlock; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeBlock; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentCodeBlock; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentCodeInline : org/jetbrains/dokka/pages/ContentCode { + public fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeInline; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentCodeInline;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentCodeInline; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getLanguage ()Ljava/lang/String; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentCodeInline; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentCodeInline; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentCodeInline; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public abstract interface class org/jetbrains/dokka/pages/ContentComposite : org/jetbrains/dokka/pages/ContentNode { + public abstract fun getChildren ()Ljava/util/List; + public abstract fun getSourceSets ()Ljava/util/Set; + public abstract fun hasAnyContent ()Z + public abstract fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; +} + +public final class org/jetbrains/dokka/pages/ContentComposite$DefaultImpls { + public static fun getSourceSets (Lorg/jetbrains/dokka/pages/ContentComposite;)Ljava/util/Set; + public static fun hasAnyContent (Lorg/jetbrains/dokka/pages/ContentComposite;)Z +} + +public final class org/jetbrains/dokka/pages/ContentDRILink : org/jetbrains/dokka/pages/ContentLink { + public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Lorg/jetbrains/dokka/links/DRI; + public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDRILink; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDRILink;Ljava/util/List;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDRILink; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Lorg/jetbrains/dokka/links/DRI; + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentDRILink; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDRILink; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentDRILink; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentDivergentGroup : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;Z)V + public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component3 ()Ljava/util/Set; + public final fun component4 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun component5 ()Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID; + public final fun component6 ()Z + public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;Z)Lorg/jetbrains/dokka/pages/ContentDivergentGroup; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDivergentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;ZILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getGroupID ()Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID; + public final fun getImplicitlySourceSetHinted ()Z + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentDivergentGroup$GroupID { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDivergentGroup$GroupID; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/pages/ContentDivergentInstance : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/jetbrains/dokka/pages/ContentNode; + public final fun component2 ()Lorg/jetbrains/dokka/pages/ContentNode; + public final fun component3 ()Lorg/jetbrains/dokka/pages/ContentNode; + public final fun component4 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Ljava/util/Set; + public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentDivergentInstance;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance; + public fun equals (Ljava/lang/Object;)Z + public final fun getAfter ()Lorg/jetbrains/dokka/pages/ContentNode; + public final fun getBefore ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public final fun getDivergent ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentDivergentInstance; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentEmbeddedResource : org/jetbrains/dokka/pages/ContentLink { + public fun <init> (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Ljava/util/Set; + public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentEmbeddedResource;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public final fun getAltText ()Ljava/lang/String; + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentEmbeddedResource; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentGroup : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component3 ()Ljava/util/Set; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentGroup; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentGroup; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentGroup; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentGroup; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentHeader : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (ILorg/jetbrains/dokka/pages/ContentComposite;)V + public fun <init> (Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()I + public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentHeader; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentHeader;Ljava/util/List;ILorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentHeader; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getLevel ()I + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentHeader; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentHeader; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentHeader; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentKind : java/lang/Enum, org/jetbrains/dokka/pages/Kind { + public static final field Annotations Lorg/jetbrains/dokka/pages/ContentKind; + public static final field BriefComment Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Classlikes Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Comment Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Companion Lorg/jetbrains/dokka/pages/ContentKind$Companion; + public static final field Constructors Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Cover Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Deprecation Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Empty Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Extensions Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Functions Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Inheritors Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Main Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Packages Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Parameters Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Properties Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Sample Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Source Lorg/jetbrains/dokka/pages/ContentKind; + public static final field SourceSetDependentHint Lorg/jetbrains/dokka/pages/ContentKind; + public static final field Symbol Lorg/jetbrains/dokka/pages/ContentKind; + public static final field TypeAliases Lorg/jetbrains/dokka/pages/ContentKind; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ContentKind; + public static fun values ()[Lorg/jetbrains/dokka/pages/ContentKind; +} + +public final class org/jetbrains/dokka/pages/ContentKind$Companion { + public final fun shouldBePlatformTagged (Lorg/jetbrains/dokka/pages/Kind;)Z +} + +public abstract interface class org/jetbrains/dokka/pages/ContentLink : org/jetbrains/dokka/pages/ContentComposite { +} + +public final class org/jetbrains/dokka/pages/ContentLink$DefaultImpls { + public static fun getSourceSets (Lorg/jetbrains/dokka/pages/ContentLink;)Ljava/util/Set; + public static fun hasAnyContent (Lorg/jetbrains/dokka/pages/ContentLink;)Z +} + +public final class org/jetbrains/dokka/pages/ContentList : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Z + public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentList; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentList;Ljava/util/List;ZLorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentList; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getOrdered ()Z + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentList; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentList; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentList; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public abstract interface class org/jetbrains/dokka/pages/ContentNode : org/jetbrains/dokka/model/WithChildren, org/jetbrains/dokka/model/properties/WithExtraProperties { + public abstract fun getChildren ()Ljava/util/List; + public abstract fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public abstract fun getSourceSets ()Ljava/util/Set; + public abstract fun getStyle ()Ljava/util/Set; + public abstract fun hasAnyContent ()Z + public abstract fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public final class org/jetbrains/dokka/pages/ContentNode$DefaultImpls { + public static fun getChildren (Lorg/jetbrains/dokka/pages/ContentNode;)Ljava/util/List; +} + +public final class org/jetbrains/dokka/pages/ContentNodesKt { + public static final fun hasStyle (Lorg/jetbrains/dokka/pages/ContentNode;Lorg/jetbrains/dokka/pages/Style;)Z +} + +public abstract interface class org/jetbrains/dokka/pages/ContentPage : org/jetbrains/dokka/pages/PageNode { + public abstract fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode; + public abstract fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable; + public abstract fun getDri ()Ljava/util/Set; + public abstract fun getEmbeddedResources ()Ljava/util/List; + public abstract fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage; +} + +public final class org/jetbrains/dokka/pages/ContentPage$DefaultImpls { + public static fun getDocumentable (Lorg/jetbrains/dokka/pages/ContentPage;)Lorg/jetbrains/dokka/model/Documentable; + public static synthetic fun modified$default (Lorg/jetbrains/dokka/pages/ContentPage;Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentPage; +} + +public final class org/jetbrains/dokka/pages/ContentResolvedLink : org/jetbrains/dokka/pages/ContentLink { + public fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentResolvedLink; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentResolvedLink;Ljava/util/List;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentResolvedLink; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentResolvedLink; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentResolvedLink; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentResolvedLink; +} + +public final class org/jetbrains/dokka/pages/ContentStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { + public static final field Caption Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field Footnote Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field InDocumentationAnchor Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field Indented Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field KDocTag Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field RowTitle Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field RunnableSample Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field TabbedContent Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field WithExtraAttributes Lorg/jetbrains/dokka/pages/ContentStyle; + public static final field Wrapped Lorg/jetbrains/dokka/pages/ContentStyle; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ContentStyle; + public static fun values ()[Lorg/jetbrains/dokka/pages/ContentStyle; +} + +public final class org/jetbrains/dokka/pages/ContentTable : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Lorg/jetbrains/dokka/pages/ContentGroup; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component5 ()Ljava/util/Set; + public final fun component6 ()Ljava/util/Set; + public final fun component7 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentTable; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentTable;Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentTable; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Lorg/jetbrains/dokka/pages/ContentGroup; + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getHeader ()Ljava/util/List; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentTable; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentTable; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentTable; +} + +public final class org/jetbrains/dokka/pages/ContentText : org/jetbrains/dokka/pages/ContentNode { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/jetbrains/dokka/pages/DCI; + public final fun component3 ()Ljava/util/Set; + public final fun component4 ()Ljava/util/Set; + public final fun component5 ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentText; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentText;Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentText; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public final fun getText ()Ljava/lang/String; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentText; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentText; +} + +public final class org/jetbrains/dokka/pages/DCI { + public fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;)V + public final fun component1 ()Ljava/util/Set; + public final fun component2 ()Lorg/jetbrains/dokka/pages/Kind; + public final fun copy (Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;)Lorg/jetbrains/dokka/pages/DCI; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Lorg/jetbrains/dokka/pages/Kind;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/DCI; + public fun equals (Ljava/lang/Object;)Z + public final fun getDri ()Ljava/util/Set; + public final fun getKind ()Lorg/jetbrains/dokka/pages/Kind; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class org/jetbrains/dokka/pages/DriResolver : kotlin/jvm/functions/Function2 { +} + +public final class org/jetbrains/dokka/pages/HtmlContent : org/jetbrains/dokka/model/properties/ExtraProperty, org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public static final field INSTANCE Lorg/jetbrains/dokka/pages/HtmlContent; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/HtmlContent;Lorg/jetbrains/dokka/pages/HtmlContent;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public abstract interface class org/jetbrains/dokka/pages/Kind { +} + +public final class org/jetbrains/dokka/pages/ListStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { + public static final field DescriptionDetails Lorg/jetbrains/dokka/pages/ListStyle; + public static final field DescriptionList Lorg/jetbrains/dokka/pages/ListStyle; + public static final field DescriptionTerm Lorg/jetbrains/dokka/pages/ListStyle; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/ListStyle; + public static fun values ()[Lorg/jetbrains/dokka/pages/ListStyle; +} + +public abstract interface class org/jetbrains/dokka/pages/MemberPage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables { +} + +public final class org/jetbrains/dokka/pages/MemberPage$DefaultImpls { + public static fun getDocumentable (Lorg/jetbrains/dokka/pages/MemberPage;)Lorg/jetbrains/dokka/model/Documentable; +} + +public final class org/jetbrains/dokka/pages/MemberPageNode : org/jetbrains/dokka/pages/MemberPage { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun getChildren ()Ljava/util/List; + public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable; + public fun getDocumentables ()Ljava/util/List; + public fun getDri ()Ljava/util/Set; + public fun getEmbeddedResources ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/MemberPageNode; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage; + public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/MemberPageNode; +} + +public abstract interface class org/jetbrains/dokka/pages/ModulePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables { +} + +public final class org/jetbrains/dokka/pages/ModulePage$DefaultImpls { + public static fun getDocumentable (Lorg/jetbrains/dokka/pages/ModulePage;)Lorg/jetbrains/dokka/model/Documentable; +} + +public final class org/jetbrains/dokka/pages/ModulePageNode : org/jetbrains/dokka/pages/RootPageNode, org/jetbrains/dokka/pages/ModulePage { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun getChildren ()Ljava/util/List; + public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable; + public fun getDocumentables ()Ljava/util/List; + public fun getDri ()Ljava/util/Set; + public fun getEmbeddedResources ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ModulePageNode; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode; + public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage; + public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ModulePageNode; +} + +public abstract interface class org/jetbrains/dokka/pages/MultimoduleRootPage : org/jetbrains/dokka/pages/ContentPage { +} + +public final class org/jetbrains/dokka/pages/MultimoduleRootPage$DefaultImpls { + public static fun getDocumentable (Lorg/jetbrains/dokka/pages/MultimoduleRootPage;)Lorg/jetbrains/dokka/model/Documentable; +} + +public final class org/jetbrains/dokka/pages/MultimoduleRootPageNode : org/jetbrains/dokka/pages/RootPageNode, org/jetbrains/dokka/pages/MultimoduleRootPage { + public fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;)V + public synthetic fun <init> (Ljava/util/Set;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun getChildren ()Ljava/util/List; + public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable; + public fun getDri ()Ljava/util/Set; + public fun getEmbeddedResources ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode; + public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage; +} + +public final class org/jetbrains/dokka/pages/MultimoduleTable : org/jetbrains/dokka/pages/Style { + public static final field INSTANCE Lorg/jetbrains/dokka/pages/MultimoduleTable; +} + +public abstract interface class org/jetbrains/dokka/pages/PackagePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables { +} + +public final class org/jetbrains/dokka/pages/PackagePage$DefaultImpls { + public static fun getDocumentable (Lorg/jetbrains/dokka/pages/PackagePage;)Lorg/jetbrains/dokka/model/Documentable; +} + +public final class org/jetbrains/dokka/pages/PackagePageNode : org/jetbrains/dokka/pages/PackagePage { + public fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V + public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun getChildren ()Ljava/util/List; + public fun getContent ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getDocumentable ()Lorg/jetbrains/dokka/model/Documentable; + public fun getDocumentables ()Ljava/util/List; + public fun getDri ()Ljava/util/Set; + public fun getEmbeddedResources ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PackagePageNode; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public synthetic fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentPage; + public fun modified (Ljava/lang/String;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;Ljava/util/List;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PackagePageNode; +} + +public abstract interface class org/jetbrains/dokka/pages/PageNode : org/jetbrains/dokka/model/WithChildren { + public abstract fun getChildren ()Ljava/util/List; + public abstract fun getName ()Ljava/lang/String; + public abstract fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; +} + +public final class org/jetbrains/dokka/pages/PageNode$DefaultImpls { + public static synthetic fun modified$default (Lorg/jetbrains/dokka/pages/PageNode;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/PageNode; +} + +public abstract interface class org/jetbrains/dokka/pages/PageResolver : kotlin/jvm/functions/Function2 { +} + +public final class org/jetbrains/dokka/pages/PlatformHintedContent : org/jetbrains/dokka/pages/ContentComposite { + public fun <init> (Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;)V + public final fun component1 ()Lorg/jetbrains/dokka/pages/ContentNode; + public final fun component2 ()Ljava/util/Set; + public final fun copy (Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;)Lorg/jetbrains/dokka/pages/PlatformHintedContent; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/PlatformHintedContent;Lorg/jetbrains/dokka/pages/ContentNode;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/PlatformHintedContent; + public fun equals (Ljava/lang/Object;)Z + public fun getChildren ()Ljava/util/List; + public fun getDci ()Lorg/jetbrains/dokka/pages/DCI; + public fun getExtra ()Lorg/jetbrains/dokka/model/properties/PropertyContainer; + public final fun getInner ()Lorg/jetbrains/dokka/pages/ContentNode; + public fun getSourceSets ()Ljava/util/Set; + public fun getStyle ()Ljava/util/Set; + public fun hasAnyContent ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public synthetic fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentComposite; + public fun transformChildren (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/PlatformHintedContent; + public synthetic fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; + public fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Lorg/jetbrains/dokka/pages/ContentNode; + public synthetic fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentNode; + public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/PlatformHintedContent; +} + +public abstract interface class org/jetbrains/dokka/pages/RendererSpecificPage : org/jetbrains/dokka/pages/PageNode { + public abstract fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy; +} + +public final class org/jetbrains/dokka/pages/RendererSpecificResourcePage : org/jetbrains/dokka/pages/RendererSpecificPage { + public fun <init> (Ljava/lang/String;Ljava/util/List;Lorg/jetbrains/dokka/pages/RenderingStrategy;)V + public fun getChildren ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RendererSpecificResourcePage; +} + +public final class org/jetbrains/dokka/pages/RendererSpecificRootPage : org/jetbrains/dokka/pages/RootPageNode, org/jetbrains/dokka/pages/RendererSpecificPage { + public fun <init> (Ljava/lang/String;Ljava/util/List;Lorg/jetbrains/dokka/pages/RenderingStrategy;)V + public fun getChildren ()Ljava/util/List; + public fun getName ()Ljava/lang/String; + public fun getStrategy ()Lorg/jetbrains/dokka/pages/RenderingStrategy; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/PageNode; + public fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RendererSpecificRootPage; + public synthetic fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public abstract class org/jetbrains/dokka/pages/RenderingStrategy { + public static final field Companion Lorg/jetbrains/dokka/pages/RenderingStrategy$Companion; +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$Callback : org/jetbrains/dokka/pages/RenderingStrategy { + public fun <init> (Lkotlin/jvm/functions/Function2;)V + public final fun getInstructions ()Lkotlin/jvm/functions/Function2; +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$Companion { +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$Copy : org/jetbrains/dokka/pages/RenderingStrategy { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Copy; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$Copy;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Copy; + public fun equals (Ljava/lang/Object;)Z + public final fun getFrom ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$DoNothing : org/jetbrains/dokka/pages/RenderingStrategy { + public static final field INSTANCE Lorg/jetbrains/dokka/pages/RenderingStrategy$DoNothing; +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite : org/jetbrains/dokka/pages/RenderingStrategy { + public fun <init> (Lkotlin/jvm/functions/Function1;)V + public final fun component1 ()Lkotlin/jvm/functions/Function1; + public final fun copy (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$DriLocationResolvableWrite; + public fun equals (Ljava/lang/Object;)Z + public final fun getContentToResolve ()Lkotlin/jvm/functions/Function1; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite : org/jetbrains/dokka/pages/RenderingStrategy { + public fun <init> (Lkotlin/jvm/functions/Function1;)V + public final fun component1 ()Lkotlin/jvm/functions/Function1; + public final fun copy (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$PageLocationResolvableWrite; + public fun equals (Ljava/lang/Object;)Z + public final fun getContentToResolve ()Lkotlin/jvm/functions/Function1; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/pages/RenderingStrategy$Write : org/jetbrains/dokka/pages/RenderingStrategy { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Write; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/RenderingStrategy$Write;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/RenderingStrategy$Write; + public fun equals (Ljava/lang/Object;)Z + public final fun getText ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/jetbrains/dokka/pages/RootPageNode : org/jetbrains/dokka/pages/PageNode { + public fun <init> ()V + public fun <init> (Z)V + public synthetic fun <init> (ZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getForceTopLevelName ()Z + public final fun getParentMap ()Ljava/util/Map; + public abstract fun modified (Ljava/lang/String;Ljava/util/List;)Lorg/jetbrains/dokka/pages/RootPageNode; + public final fun transformContentPagesTree (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RootPageNode; + public final fun transformPageNodeTree (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/pages/SimpleAttr : org/jetbrains/dokka/model/properties/ExtraProperty { + public fun <init> (Ljava/lang/String;Ljava/lang/String;)V + public final fun getExtraKey ()Ljava/lang/String; + public final fun getExtraValue ()Ljava/lang/String; + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; +} + +public final class org/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/SimpleAttr$SimpleAttrKey; + public fun equals (Ljava/lang/Object;)Z + public final fun getKey ()Ljava/lang/String; + public fun hashCode ()I + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/SimpleAttr;Lorg/jetbrains/dokka/pages/SimpleAttr;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun toString ()Ljava/lang/String; +} + +public abstract interface class org/jetbrains/dokka/pages/Style { +} + +public final class org/jetbrains/dokka/pages/SymbolContentKind : java/lang/Enum, org/jetbrains/dokka/pages/Kind { + public static final field Parameter Lorg/jetbrains/dokka/pages/SymbolContentKind; + public static final field Parameters Lorg/jetbrains/dokka/pages/SymbolContentKind; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/SymbolContentKind; + public static fun values ()[Lorg/jetbrains/dokka/pages/SymbolContentKind; +} + +public abstract interface class org/jetbrains/dokka/pages/TabbedContentType { +} + +public final class org/jetbrains/dokka/pages/TabbedContentTypeExtra : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra$Companion; + public fun <init> (Lorg/jetbrains/dokka/pages/TabbedContentType;)V + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public final fun getValue ()Lorg/jetbrains/dokka/pages/TabbedContentType; +} + +public final class org/jetbrains/dokka/pages/TabbedContentTypeExtra$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra;Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/pages/TextStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { + public static final field Block Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Bold Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Breakable Lorg/jetbrains/dokka/pages/TextStyle; + public static final field BreakableAfter Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Cover Lorg/jetbrains/dokka/pages/TextStyle; + public static final field FloatingRight Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Indented Lorg/jetbrains/dokka/pages/TextStyle; + public static final field InlineComment Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Italic Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Monospace Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Paragraph Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Quotation Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Span Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Strikethrough Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Strong Lorg/jetbrains/dokka/pages/TextStyle; + public static final field UnderCoverText Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Underlined Lorg/jetbrains/dokka/pages/TextStyle; + public static final field Var Lorg/jetbrains/dokka/pages/TextStyle; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/TextStyle; + public static fun values ()[Lorg/jetbrains/dokka/pages/TextStyle; +} + +public final class org/jetbrains/dokka/pages/TokenStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { + public static final field Annotation Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Boolean Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Constant Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Function Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Keyword Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Number Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Operator Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Punctuation Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field String Lorg/jetbrains/dokka/pages/TokenStyle; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/TokenStyle; + public static fun values ()[Lorg/jetbrains/dokka/pages/TokenStyle; +} + +public final class org/jetbrains/dokka/pages/UtilsKt { + public static final fun mapTransform (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentNode; + public static final fun recursiveMapTransform (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentNode; +} + +public abstract interface class org/jetbrains/dokka/pages/WithDocumentables { + public abstract fun getDocumentables ()Ljava/util/List; +} + +public final class org/jetbrains/dokka/pages/WrongRendererTypeException : java/lang/Exception { + public fun <init> (Lkotlin/reflect/KClass;)V + public final fun component1 ()Lkotlin/reflect/KClass; + public final fun copy (Lkotlin/reflect/KClass;)Lorg/jetbrains/dokka/pages/WrongRendererTypeException; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/WrongRendererTypeException;Lkotlin/reflect/KClass;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/WrongRendererTypeException; + public fun equals (Ljava/lang/Object;)Z + public final fun getExpectedType ()Lkotlin/reflect/KClass; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class org/jetbrains/dokka/plugability/ConfigurableBlock { +} + +public abstract interface class org/jetbrains/dokka/plugability/DokkaContext { + public static final field Companion Lorg/jetbrains/dokka/plugability/DokkaContext$Companion; + public abstract fun get (Lorg/jetbrains/dokka/plugability/ExtensionPoint;)Ljava/util/List; + public abstract fun getConfiguration ()Lorg/jetbrains/dokka/DokkaConfiguration; + public abstract fun getLogger ()Lorg/jetbrains/dokka/utilities/DokkaLogger; + public abstract fun getUnusedPoints ()Ljava/util/Collection; + public abstract fun plugin (Lkotlin/reflect/KClass;)Lorg/jetbrains/dokka/plugability/DokkaPlugin; + public abstract fun single (Lorg/jetbrains/dokka/plugability/ExtensionPoint;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/plugability/DokkaContext$Companion { + public final fun create (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/utilities/DokkaLogger;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/DokkaContext; +} + +public abstract interface class org/jetbrains/dokka/plugability/DokkaContextConfiguration { + public abstract fun installExtension (Lorg/jetbrains/dokka/plugability/Extension;)V +} + +public abstract class org/jetbrains/dokka/plugability/DokkaJavaPlugin : org/jetbrains/dokka/plugability/DokkaPlugin { + public fun <init> ()V + public final fun extend (Lkotlin/jvm/functions/Function1;)Lkotlin/Lazy; + public final fun plugin (Ljava/lang/Class;)Lorg/jetbrains/dokka/plugability/DokkaPlugin; +} + +public abstract class org/jetbrains/dokka/plugability/DokkaPlugin { + public fun <init> ()V + protected final fun extending (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/DokkaPlugin$ExtensionProvider; + protected final fun extensionPoint ()Lkotlin/properties/ReadOnlyProperty; + public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; + protected final fun getLogger ()Lorg/jetbrains/dokka/utilities/DokkaLogger; + protected abstract fun pluginApiPreviewAcknowledgement ()Lorg/jetbrains/dokka/plugability/PluginApiPreviewAcknowledgement; + public final fun setContext (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + protected final fun unsafeInstall (Lkotlin/Lazy;)V +} + +protected final class org/jetbrains/dokka/plugability/DokkaPlugin$ExtensionProvider { + public final fun provideDelegate (Lorg/jetbrains/dokka/plugability/DokkaPlugin;Lkotlin/reflect/KProperty;)Lkotlin/Lazy; +} + +public abstract interface annotation class org/jetbrains/dokka/plugability/DokkaPluginApiPreview : java/lang/annotation/Annotation { +} + +public final class org/jetbrains/dokka/plugability/DokkaPluginKt { + public static final fun throwIllegalQuery ()Ljava/lang/Void; +} + +public final class org/jetbrains/dokka/plugability/ExtendingDSL { + public fun <init> (Ljava/lang/String;Ljava/lang/String;)V + public final fun applyIf (Lorg/jetbrains/dokka/plugability/Extension;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/Extension; + public final fun order (Lorg/jetbrains/dokka/plugability/Extension;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/Extension; + public final fun override (Lorg/jetbrains/dokka/plugability/Extension;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/Extension; + public final fun override (Lorg/jetbrains/dokka/plugability/Extension;Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/Extension; + public final fun providing (Lorg/jetbrains/dokka/plugability/ExtensionPoint;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/Extension; + public final fun with (Lorg/jetbrains/dokka/plugability/ExtensionPoint;Ljava/lang/Object;)Lorg/jetbrains/dokka/plugability/Extension; +} + +public final class org/jetbrains/dokka/plugability/Extension { + public fun equals (Ljava/lang/Object;)Z + public final fun getCondition ()Lkotlin/jvm/functions/Function1; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/plugability/ExtensionBuilder { + public final fun addCondition (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun after ([Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun before ([Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun build ()Lorg/jetbrains/dokka/plugability/Extension; + public final fun copy (Ljava/lang/String;Lorg/jetbrains/dokka/plugability/ExtensionPoint;Lorg/jetbrains/dokka/plugability/LazyEvaluated;Ljava/util/List;Ljava/util/List;Lorg/jetbrains/dokka/plugability/OverrideKind;Ljava/util/List;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/plugability/ExtensionBuilder;Ljava/lang/String;Lorg/jetbrains/dokka/plugability/ExtensionPoint;Lorg/jetbrains/dokka/plugability/LazyEvaluated;Ljava/util/List;Ljava/util/List;Lorg/jetbrains/dokka/plugability/OverrideKind;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun name (Ljava/lang/String;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun newOrdering ([Lorg/jetbrains/dokka/plugability/Extension;[Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun overrideExtension (Lorg/jetbrains/dokka/plugability/Extension;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/plugability/ExtensionBuilderStart { + public final fun extensionPoint (Lorg/jetbrains/dokka/plugability/ExtensionPoint;)Lorg/jetbrains/dokka/plugability/ProvidedExtension; +} + +public final class org/jetbrains/dokka/plugability/ExtensionPoint { + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/plugability/ExtensionPoint;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/plugability/ExtensionPoint; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface annotation class org/jetbrains/dokka/plugability/ExtensionsDsl : java/lang/annotation/Annotation { +} + +public final class org/jetbrains/dokka/plugability/OrderDsl { + public fun <init> ()V + public final fun after ([Lorg/jetbrains/dokka/plugability/Extension;)V + public final fun before ([Lorg/jetbrains/dokka/plugability/Extension;)V +} + +public abstract class org/jetbrains/dokka/plugability/OrderingKind { +} + +public final class org/jetbrains/dokka/plugability/OrderingKind$ByDsl : org/jetbrains/dokka/plugability/OrderingKind { + public fun <init> (Lkotlin/jvm/functions/Function1;)V + public final fun getBlock ()Lkotlin/jvm/functions/Function1; +} + +public final class org/jetbrains/dokka/plugability/OrderingKind$None : org/jetbrains/dokka/plugability/OrderingKind { + public static final field INSTANCE Lorg/jetbrains/dokka/plugability/OrderingKind$None; +} + +public abstract class org/jetbrains/dokka/plugability/OverrideKind { +} + +public final class org/jetbrains/dokka/plugability/OverrideKind$None : org/jetbrains/dokka/plugability/OverrideKind { + public static final field INSTANCE Lorg/jetbrains/dokka/plugability/OverrideKind$None; +} + +public final class org/jetbrains/dokka/plugability/OverrideKind$Present : org/jetbrains/dokka/plugability/OverrideKind { + public fun <init> (Ljava/util/List;)V + public final fun getOverriden ()Ljava/util/List; +} + +public final class org/jetbrains/dokka/plugability/PluginApiPreviewAcknowledgement { + public static final field INSTANCE Lorg/jetbrains/dokka/plugability/PluginApiPreviewAcknowledgement; +} + +public final class org/jetbrains/dokka/plugability/ProvidedExtension { + public final fun fromInstance (Ljava/lang/Object;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun fromRecipe (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/plugability/ExtensionBuilder; + public final fun getExt ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; +} + +public abstract interface class org/jetbrains/dokka/plugability/WithUnsafeExtensionSuppression { + public abstract fun getExtensionsSuppressed ()Ljava/util/List; +} + +public abstract interface class org/jetbrains/dokka/renderers/PostAction : kotlin/jvm/functions/Function0 { +} + +public abstract interface class org/jetbrains/dokka/renderers/Renderer { + public abstract fun render (Lorg/jetbrains/dokka/pages/RootPageNode;)V +} + +public final class org/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier$Companion; + public fun <init> (Ljava/util/Set;)V + public final fun component1 ()Ljava/util/Set; + public final fun copy (Ljava/util/Set;)Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier; + public fun equals (Ljava/lang/Object;)Z + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public final fun getValue ()Ljava/util/Set; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;Lorg/jetbrains/dokka/transformers/documentation/ClashingDriIdentifier;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + +public final class org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger : org/jetbrains/dokka/transformers/documentation/DocumentableMerger { + public fun <init> (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public fun invoke (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/DModule; + public final fun mergeWith (Lorg/jetbrains/dokka/model/DFunction;Lorg/jetbrains/dokka/model/DFunction;)Lorg/jetbrains/dokka/model/DFunction; + public final fun mergeWith (Lorg/jetbrains/dokka/model/DPackage;Lorg/jetbrains/dokka/model/DPackage;)Lorg/jetbrains/dokka/model/DPackage; + public final fun mergeWith (Lorg/jetbrains/dokka/model/DProperty;Lorg/jetbrains/dokka/model/DProperty;)Lorg/jetbrains/dokka/model/DProperty; +} + +public abstract interface class org/jetbrains/dokka/transformers/documentation/DocumentableMerger { + public abstract fun invoke (Ljava/util/Collection;)Lorg/jetbrains/dokka/model/DModule; +} + +public abstract interface class org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator { + public abstract fun invoke (Lorg/jetbrains/dokka/model/DModule;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public abstract interface class org/jetbrains/dokka/transformers/documentation/DocumentableTransformer { + public abstract fun invoke (Lorg/jetbrains/dokka/model/DModule;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule; +} + +public abstract interface class org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer { + public abstract fun invoke (Ljava/util/List;)Ljava/util/List; +} + +public final class org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformerKt { + public static final fun perPackageOptions (Lorg/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer;Lorg/jetbrains/dokka/model/Documentable;)Lorg/jetbrains/dokka/DokkaConfiguration$PackageOptions; + public static final fun source (Lorg/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer;Lorg/jetbrains/dokka/model/Documentable;)Lorg/jetbrains/dokka/model/DocumentableSource; + public static final fun sourceSet (Lorg/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer;Lorg/jetbrains/dokka/model/Documentable;)Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; +} + +public abstract interface class org/jetbrains/dokka/transformers/pages/CreationContext { +} + +public final class org/jetbrains/dokka/transformers/pages/NoCreationContext : org/jetbrains/dokka/transformers/pages/CreationContext { + public static final field INSTANCE Lorg/jetbrains/dokka/transformers/pages/NoCreationContext; +} + +public abstract interface class org/jetbrains/dokka/transformers/pages/PageCreator { + public abstract fun invoke (Lorg/jetbrains/dokka/transformers/pages/CreationContext;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public abstract interface class org/jetbrains/dokka/transformers/pages/PageTransformer { + public abstract fun invoke (Lorg/jetbrains/dokka/pages/RootPageNode;)Lorg/jetbrains/dokka/pages/RootPageNode; +} + +public final class org/jetbrains/dokka/transformers/pages/PageTransformerBuildersKt { + public static final fun alterChildren (Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/PageNode; + public static final fun invokeOnAll (Lorg/jetbrains/dokka/pages/PageNode;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/PageNode; + public static final fun pageMapper (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/transformers/pages/PageTransformer; + public static final fun pageScanner (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/transformers/pages/PageTransformer; + public static final fun pageStructureTransformer (Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/transformers/pages/PageTransformer; +} + +public abstract interface class org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator : org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator { + public abstract fun invoke (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule; + public abstract fun invokeSuspending (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator$DefaultImpls { + public static fun invoke (Lorg/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator;Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule; +} + +public abstract interface class org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator { + public abstract fun invoke (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule; +} + +public final class org/jetbrains/dokka/utilities/AssociateWithNotNullKt { + public static final fun associateWithNotNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function1;)Ljava/util/Map; +} + +public final class org/jetbrains/dokka/utilities/DokkaConsoleLogger : org/jetbrains/dokka/utilities/DokkaLogger { + public fun <init> ()V + public fun <init> (Lorg/jetbrains/dokka/utilities/LoggingLevel;Lorg/jetbrains/dokka/utilities/MessageEmitter;)V + public synthetic fun <init> (Lorg/jetbrains/dokka/utilities/LoggingLevel;Lorg/jetbrains/dokka/utilities/MessageEmitter;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun debug (Ljava/lang/String;)V + public fun error (Ljava/lang/String;)V + public fun getErrorsCount ()I + public fun getWarningsCount ()I + public fun info (Ljava/lang/String;)V + public fun progress (Ljava/lang/String;)V + public fun setErrorsCount (I)V + public fun setWarningsCount (I)V + public fun warn (Ljava/lang/String;)V +} + +public abstract interface class org/jetbrains/dokka/utilities/DokkaLogger { + public abstract fun debug (Ljava/lang/String;)V + public abstract fun error (Ljava/lang/String;)V + public abstract fun getErrorsCount ()I + public abstract fun getWarningsCount ()I + public abstract fun info (Ljava/lang/String;)V + public abstract fun progress (Ljava/lang/String;)V + public abstract fun setErrorsCount (I)V + public abstract fun setWarningsCount (I)V + public abstract fun warn (Ljava/lang/String;)V +} + +public final class org/jetbrains/dokka/utilities/DokkaLoggingKt { + public static final fun report (Lorg/jetbrains/dokka/utilities/DokkaLogger;)V +} + +public final class org/jetbrains/dokka/utilities/HtmlKt { + public static final fun formatToEndWithHtml (Ljava/lang/String;)Ljava/lang/String; + public static final fun htmlEscape (Ljava/lang/String;)Ljava/lang/String; + public static final fun urlEncoded (Ljava/lang/String;)Ljava/lang/String; +} + +public final class org/jetbrains/dokka/utilities/JsonKt { + public static final fun parseJson (Ljava/lang/String;Lorg/jetbrains/dokka/utilities/TypeReference;)Ljava/lang/Object; + public static final fun toJsonString (Ljava/lang/Object;)Ljava/lang/String; +} + +public final class org/jetbrains/dokka/utilities/LoggingLevel : java/lang/Enum { + public static final field DEBUG Lorg/jetbrains/dokka/utilities/LoggingLevel; + public static final field ERROR Lorg/jetbrains/dokka/utilities/LoggingLevel; + public static final field INFO Lorg/jetbrains/dokka/utilities/LoggingLevel; + public static final field PROGRESS Lorg/jetbrains/dokka/utilities/LoggingLevel; + public static final field WARN Lorg/jetbrains/dokka/utilities/LoggingLevel; + public final fun getIndex ()I + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/utilities/LoggingLevel; + public static fun values ()[Lorg/jetbrains/dokka/utilities/LoggingLevel; +} + +public abstract interface class org/jetbrains/dokka/utilities/MessageEmitter : kotlin/jvm/functions/Function1 { + public static final field Companion Lorg/jetbrains/dokka/utilities/MessageEmitter$Companion; +} + +public final class org/jetbrains/dokka/utilities/MessageEmitter$Companion { + public final fun getConsoleEmitter ()Lorg/jetbrains/dokka/utilities/MessageEmitter; +} + +public final class org/jetbrains/dokka/utilities/ParallelCollectionOperationsKt { + public static final fun parallelForEach (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun parallelMap (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun parallelMapNotNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public abstract interface class org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet : java/util/Set, kotlin/jvm/internal/markers/KMappedMarker { + public abstract fun contains (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Z + public abstract fun containsAll (Ljava/util/Collection;)Z + public abstract fun getSize ()I + public abstract fun isEmpty ()Z + public abstract fun iterator ()Ljava/util/Iterator; +} + +public final class org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet$DefaultImpls { + public static fun contains (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Z + public static fun containsAll (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;Ljava/util/Collection;)Z + public static fun getSize (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)I + public static fun isEmpty (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Z + public static fun iterator (Lorg/jetbrains/dokka/utilities/SelfRepresentingSingletonSet;)Ljava/util/Iterator; +} + +public final class org/jetbrains/dokka/utilities/ServiceDescriptor { + public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/dokka/utilities/ServiceDescriptor; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/utilities/ServiceDescriptor;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/utilities/ServiceDescriptor; + public fun equals (Ljava/lang/Object;)Z + public final fun getCategory ()Ljava/lang/String; + public final fun getClassName ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/dokka/utilities/ServiceLocator { + public static final field INSTANCE Lorg/jetbrains/dokka/utilities/ServiceLocator; + public final fun allServices (Ljava/lang/String;)Ljava/util/List; + public final fun lookup (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; + public final fun lookup (Ljava/lang/Class;Lorg/jetbrains/dokka/utilities/ServiceDescriptor;)Ljava/lang/Object; + public final fun toFile (Ljava/net/URL;)Ljava/io/File; +} + +public final class org/jetbrains/dokka/utilities/ServiceLookupException : java/lang/Exception { + public fun <init> (Ljava/lang/String;)V +} + +public final class org/jetbrains/dokka/utilities/TypeReference { + public static final field Companion Lorg/jetbrains/dokka/utilities/TypeReference$Companion; + public fun <init> (Lcom/fasterxml/jackson/core/type/TypeReference;)V +} + +public final class org/jetbrains/dokka/utilities/TypeReference$Companion { +} + +public final class org/jetbrains/dokka/utilities/UriKt { + public static final fun relativeTo (Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI; +} + +public abstract interface class org/jetbrains/dokka/validity/PreGenerationChecker : kotlin/jvm/functions/Function0 { + public abstract fun invoke ()Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput; +} + +public final class org/jetbrains/dokka/validity/PreGenerationCheckerOutput { + public fun <init> (ZLjava/util/List;)V + public final fun component1 ()Z + public final fun component2 ()Ljava/util/List; + public final fun copy (ZLjava/util/List;)Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput;ZLjava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/validity/PreGenerationCheckerOutput; + public fun equals (Ljava/lang/Object;)Z + public final fun getMessages ()Ljava/util/List; + public final fun getResult ()Z + public fun hashCode ()I + public final fun plus (Lkotlin/Pair;)Lkotlin/Pair; + public fun toString ()Ljava/lang/String; +} + diff --git a/dokka-subprojects/core/build.gradle.kts b/dokka-subprojects/core/build.gradle.kts new file mode 100644 index 00000000..407d7ff6 --- /dev/null +++ b/dokka-subprojects/core/build.gradle.kts @@ -0,0 +1,40 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import dokkabuild.overridePublicationArtifactId + +plugins { + id("dokkabuild.kotlin-jvm") + id("dokkabuild.publish-jvm") +} + +overridePublicationArtifactId("dokka-core") + +dependencies { + implementation(kotlin("reflect")) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.jackson.kotlin) + implementation(libs.jackson.xml) + constraints { + implementation(libs.jackson.databind) { + because("CVE-2022-42003") + } + } + + testImplementation(kotlin("test")) + testImplementation(projects.dokkaSubprojects.coreTestApi) +} + +tasks { + processResources { + inputs.property("dokkaVersion", project.version) + eachFile { + if (name == "dokka-version.properties") { + filter { line -> + line.replace("<dokka-version>", project.version.toString()) + } + } + } + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt new file mode 100644 index 00000000..e693f4ef --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/ConfigurationJsonUtils.kt @@ -0,0 +1,54 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import org.jetbrains.dokka.plugability.ConfigurableBlock +import org.jetbrains.dokka.utilities.parseJson +import org.jetbrains.dokka.utilities.serializeAsCompactJson +import org.jetbrains.dokka.utilities.serializeAsPrettyJson + +public fun DokkaConfigurationImpl(json: String): DokkaConfigurationImpl = parseJson(json) + +public fun GlobalDokkaConfiguration(json: String): GlobalDokkaConfiguration = parseJson(json) + +@Deprecated("Renamed to better distinguish between compact/pretty prints", ReplaceWith("this.toCompactJsonString()")) +public fun DokkaConfiguration.toJsonString(): String = this.toCompactJsonString() + +@Deprecated("Renamed to better distinguish between compact/pretty prints", ReplaceWith("this.toCompactJsonString()")) +public fun <T : ConfigurableBlock> T.toJsonString(): String = this.toCompactJsonString() + +/** + * Serializes [DokkaConfiguration] as a machine-readable and compact JSON string. + * + * The returned string is not very human friendly as it will be difficult to parse by eyes due to it + * being compact and in one line. If you want to show the output to a human being, see [toPrettyJsonString]. + */ +public fun DokkaConfiguration.toCompactJsonString(): String = serializeAsCompactJson(this) + +/** + * Serializes [DokkaConfiguration] as a human-readable (pretty printed) JSON string. + * + * The returned string will have excessive line breaks and indents, which might not be + * desirable when passing this value between API consumers/producers. If you want + * a machine-readable and compact json string, see [toCompactJsonString]. + */ +public fun DokkaConfiguration.toPrettyJsonString(): String = serializeAsPrettyJson(this) + +/** + * Serializes a [ConfigurableBlock] as a machine-readable and compact JSON string. + * + * The returned string is not very human friendly as it will be difficult to parse by eyes due to it + * being compact and in one line. If you want to show the output to a human being, see [toPrettyJsonString]. + */ +public fun <T : ConfigurableBlock> T.toCompactJsonString(): String = serializeAsCompactJson(this) + +/** + * Serializes a [ConfigurableBlock] as a human-readable (pretty printed) JSON string. + * + * The returned string will have excessive line breaks and indents, which might not be + * desirable when passing this value between API consumers/producers. If you want + * a machine-readable and compact json string, see [toCompactJsonString]. + */ +public fun <T : ConfigurableBlock> T.toPrettyJsonString(): String = serializeAsCompactJson(this) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt new file mode 100644 index 00000000..ca2504e2 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/CoreExtensions.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import org.jetbrains.dokka.generation.Generation +import org.jetbrains.dokka.plugability.ExtensionPoint +import org.jetbrains.dokka.renderers.PostAction +import org.jetbrains.dokka.renderers.Renderer +import org.jetbrains.dokka.transformers.documentation.DocumentableMerger +import org.jetbrains.dokka.transformers.documentation.DocumentableToPageTranslator +import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer +import org.jetbrains.dokka.transformers.pages.PageTransformer +import org.jetbrains.dokka.transformers.sources.SourceToDocumentableTranslator +import org.jetbrains.dokka.validity.PreGenerationChecker +import kotlin.reflect.KProperty + +public object CoreExtensions { + + public val preGenerationCheck: ExtensionPoint<PreGenerationChecker> by coreExtensionPoint<PreGenerationChecker>() + + public val generation: ExtensionPoint<Generation> by coreExtensionPoint<Generation>() + + public val sourceToDocumentableTranslator: ExtensionPoint<SourceToDocumentableTranslator> by coreExtensionPoint<SourceToDocumentableTranslator>() + + public val documentableMerger: ExtensionPoint<DocumentableMerger> by coreExtensionPoint<DocumentableMerger>() + + public val documentableTransformer: ExtensionPoint<DocumentableTransformer> by coreExtensionPoint<DocumentableTransformer>() + + public val documentableToPageTranslator: ExtensionPoint<DocumentableToPageTranslator> by coreExtensionPoint<DocumentableToPageTranslator>() + + public val pageTransformer: ExtensionPoint<PageTransformer> by coreExtensionPoint<PageTransformer>() + + public val renderer: ExtensionPoint<Renderer> by coreExtensionPoint<Renderer>() + + public val postActions: ExtensionPoint<PostAction> by coreExtensionPoint<PostAction>() + + private fun <T : Any> coreExtensionPoint() = object { + operator fun provideDelegate(thisRef: CoreExtensions, property: KProperty<*>): Lazy<ExtensionPoint<T>> = + lazy { ExtensionPoint(thisRef::class.qualifiedName!!, property.name) } + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt new file mode 100644 index 00000000..d3d82e39 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrap.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import java.util.function.BiConsumer + +public interface DokkaBootstrap { + @Throws(Throwable::class) + public fun configure(serializedConfigurationJSON: String, logger: BiConsumer<String, String>) + + @Throws(Throwable::class) + public fun generate() +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt new file mode 100644 index 00000000..65f0ef72 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaBootstrapImpl.kt @@ -0,0 +1,69 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import org.jetbrains.dokka.utilities.DokkaLogger +import java.util.concurrent.atomic.AtomicInteger + +import java.util.function.BiConsumer + +/** + * Accessed with reflection + */ +@Suppress("unused") +public class DokkaBootstrapImpl : DokkaBootstrap { + + public class DokkaProxyLogger( + public val consumer: BiConsumer<String, String> + ) : DokkaLogger { + private val warningsCounter = AtomicInteger() + private val errorsCounter = AtomicInteger() + + override var warningsCount: Int + get() = warningsCounter.get() + set(value) = warningsCounter.set(value) + + override var errorsCount: Int + get() = errorsCounter.get() + set(value) = errorsCounter.set(value) + + override fun debug(message: String) { + consumer.accept("debug", message) + } + + override fun info(message: String) { + consumer.accept("info", message) + } + + override fun progress(message: String) { + consumer.accept("progress", message) + } + + override fun warn(message: String) { + consumer.accept("warn", message).also { warningsCounter.incrementAndGet() } + } + + override fun error(message: String) { + consumer.accept("error", message).also { errorsCounter.incrementAndGet() } + } + } + + private lateinit var generator: DokkaGenerator + + public fun configure(logger: DokkaLogger, configuration: DokkaConfigurationImpl) { + generator = DokkaGenerator(configuration, logger) + } + + override fun configure(serializedConfigurationJSON: String, logger: BiConsumer<String, String>) { + configure( + DokkaProxyLogger(logger), + DokkaConfigurationImpl(serializedConfigurationJSON) + ) + } + + override fun generate() { + generator.generate() + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt new file mode 100644 index 00000000..f16a2649 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaException.kt @@ -0,0 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +public open class DokkaException(message: String) : RuntimeException(message) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt new file mode 100644 index 00000000..9ae3adb4 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaGenerator.kt @@ -0,0 +1,89 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:Suppress("SameParameterValue") + +package org.jetbrains.dokka + +import kotlinx.coroutines.DelicateCoroutinesApi +import kotlinx.coroutines.Dispatchers +import org.jetbrains.dokka.generation.GracefulGenerationExit +import org.jetbrains.dokka.plugability.DokkaContext +import org.jetbrains.dokka.plugability.DokkaPlugin +import org.jetbrains.dokka.utilities.DokkaLogger + +/** + * DokkaGenerator is the main entry point for generating documentation + * + * [generate] method has been split into submethods for test reasons + */ +public class DokkaGenerator( + private val configuration: DokkaConfiguration, + private val logger: DokkaLogger +) { + + public fun generate() { + timed(logger) { + report("Initializing plugins") + val context = initializePlugins(configuration, logger) + + runCatching { + context.single(CoreExtensions.generation).run { + logger.progress("Dokka is performing: $generationName") + generate() + } + }.exceptionOrNull()?.let { e -> + finalizeCoroutines() + throw e + } + + finalizeCoroutines() + }.dump("\n\n === TIME MEASUREMENT ===\n") + } + + public fun initializePlugins( + configuration: DokkaConfiguration, + logger: DokkaLogger, + additionalPlugins: List<DokkaPlugin> = emptyList() + ): DokkaContext = DokkaContext.create(configuration, logger, additionalPlugins) + + @OptIn(DelicateCoroutinesApi::class) + private fun finalizeCoroutines() { + if (configuration.finalizeCoroutines) { + Dispatchers.shutdown() + } + } +} + +public class Timer internal constructor(startTime: Long, private val logger: DokkaLogger?) { + private val steps = mutableListOf("" to startTime) + + public fun report(name: String) { + logger?.progress(name) + steps += (name to System.currentTimeMillis()) + } + + public fun dump(prefix: String = "") { + logger?.info(prefix) + val namePad = steps.map { it.first.length }.maxOrNull() ?: 0 + val timePad = steps.windowed(2).map { (p1, p2) -> p2.second - p1.second }.maxOrNull()?.toString()?.length ?: 0 + steps.windowed(2).forEach { (p1, p2) -> + if (p1.first.isNotBlank()) { + logger?.info("${p1.first.padStart(namePad)}: ${(p2.second - p1.second).toString().padStart(timePad)}") + } + } + } +} + +private fun timed(logger: DokkaLogger? = null, block: Timer.() -> Unit): Timer = + Timer(System.currentTimeMillis(), logger).apply { + try { + block() + } catch (exit: GracefulGenerationExit) { + report("Exiting Generation: ${exit.reason}") + } finally { + report("") + } + } + diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt new file mode 100644 index 00000000..d846988b --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/DokkaVersion.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import java.util.* + +public object DokkaVersion { + public val version: String by lazy { + javaClass.getResourceAsStream("/META-INF/dokka/dokka-version.properties").use { stream -> + Properties().apply { load(stream) }.getProperty("dokka-version") + } + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt new file mode 100644 index 00000000..65c0427c --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/InternalDokkaApi.kt @@ -0,0 +1,28 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + + +/** + * Marks declarations that are **internal** to Dokka core artifact. + * It means that this API is marked as **public** either for historical or technical reasons. + * It is not intended to be used outside of the Dokka project, has no behaviour guarantees, + * and may lack clear semantics, documentation and backward compatibility. + * + * If you are using such API, it is strongly suggested to migrate from it in order + * to keep backwards compatibility with future Dokka versions. + * Typically, the easiest way to do so is to copy-paste the corresponding utility into + * your own project. + */ +@RequiresOptIn( + level = RequiresOptIn.Level.ERROR, + message = "This is an internal Dokka API not intended for public use" +) +@Target( + AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.FIELD, + AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS +) +@Retention(AnnotationRetention.BINARY) +public annotation class InternalDokkaApi() diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt new file mode 100644 index 00000000..65035d04 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/configuration.kt @@ -0,0 +1,280 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import org.jetbrains.dokka.utilities.cast +import java.io.File +import java.io.Serializable +import java.net.URL + +public object DokkaDefaults { + public val moduleName: String = "root" + public val moduleVersion: String? = null + public val outputDir: File = File("./dokka") + public const val failOnWarning: Boolean = false + public const val suppressObviousFunctions: Boolean = true + public const val suppressInheritedMembers: Boolean = false + public const val offlineMode: Boolean = false + + public const val sourceSetDisplayName: String = "JVM" + public const val sourceSetName: String = "main" + public val analysisPlatform: Platform = Platform.DEFAULT + + public const val suppress: Boolean = false + public const val suppressGeneratedFiles: Boolean = true + + public const val skipEmptyPackages: Boolean = true + public const val skipDeprecated: Boolean = false + + public const val reportUndocumented: Boolean = false + + public const val noStdlibLink: Boolean = false + public const val noAndroidSdkLink: Boolean = false + public const val noJdkLink: Boolean = false + public const val jdkVersion: Int = 8 + + public const val includeNonPublic: Boolean = false + public val documentedVisibilities: Set<DokkaConfiguration.Visibility> = setOf(DokkaConfiguration.Visibility.PUBLIC) + + public val pluginsConfiguration: List<PluginConfigurationImpl> = mutableListOf() + + public const val delayTemplateSubstitution: Boolean = false + + public val cacheRoot: File? = null +} + +public enum class Platform( + public val key: String +) { + jvm("jvm"), + js("js"), + wasm("wasm"), + native("native"), + common("common"); + + public companion object { + public val DEFAULT: Platform = jvm + + public fun fromString(key: String): Platform { + return when (key.toLowerCase()) { + jvm.key -> jvm + js.key -> js + wasm.key -> wasm + native.key -> native + common.key -> common + "androidjvm", "android" -> jvm + "metadata" -> common + else -> throw IllegalArgumentException("Unrecognized platform: $key") + } + } + } +} + +public fun interface DokkaConfigurationBuilder<T : Any> { + public fun build(): T +} + +public fun <T : Any> Iterable<DokkaConfigurationBuilder<T>>.build(): List<T> = this.map { it.build() } + +public data class DokkaSourceSetID( + /** + * Unique identifier of the scope that this source set is placed in. + * Each scope provide only unique source set names. + * + * E.g. One DokkaTask inside the Gradle plugin represents one source set scope, since there cannot be multiple + * source sets with the same name. However, a Gradle project will not be a proper scope, since there can be + * multple DokkaTasks that contain source sets with the same name (but different configuration) + */ + val scopeId: String, + val sourceSetName: String +) : Serializable { + override fun toString(): String { + return "$scopeId/$sourceSetName" + } +} + +/** + * Global options can be configured and applied to all packages and modules at once, overwriting package configuration. + * + * These are handy if we have multiple source sets sharing the same global options as it reduces the size of the + * boilerplate. Otherwise, the user would be forced to repeat all these options for each source set. + * + * @see [apply] to learn how to apply global configuration + */ +public data class GlobalDokkaConfiguration( + val perPackageOptions: List<PackageOptionsImpl>?, + val externalDocumentationLinks: List<ExternalDocumentationLinkImpl>?, + val sourceLinks: List<SourceLinkDefinitionImpl>? +) + +public fun DokkaConfiguration.apply(globals: GlobalDokkaConfiguration): DokkaConfiguration = this.apply { + sourceSets.forEach { + it.perPackageOptions.cast<MutableList<DokkaConfiguration.PackageOptions>>() + .addAll(globals.perPackageOptions ?: emptyList()) + } + + sourceSets.forEach { + it.externalDocumentationLinks.cast<MutableSet<DokkaConfiguration.ExternalDocumentationLink>>() + .addAll(globals.externalDocumentationLinks ?: emptyList()) + } + + sourceSets.forEach { + it.sourceLinks.cast<MutableSet<SourceLinkDefinitionImpl>>().addAll(globals.sourceLinks ?: emptyList()) + } +} + +public interface DokkaConfiguration : Serializable { + public val moduleName: String + public val moduleVersion: String? + public val outputDir: File + public val cacheRoot: File? + public val offlineMode: Boolean + public val failOnWarning: Boolean + public val sourceSets: List<DokkaSourceSet> + public val modules: List<DokkaModuleDescription> + public val pluginsClasspath: List<File> + public val pluginsConfiguration: List<PluginConfiguration> + public val delayTemplateSubstitution: Boolean + public val suppressObviousFunctions: Boolean + public val includes: Set<File> + public val suppressInheritedMembers: Boolean + + /** + * Whether coroutines dispatchers should be shutdown after + * generating documentation via [DokkaGenerator.generate]. + * + * It effectively stops all background threads associated with + * coroutines in order to make classes unloadable by the JVM, + * and rejects all new tasks with [RejectedExecutionException] + * + * This is primarily useful for multi-module builds where coroutines + * can be shut down after each module's partial task to avoid + * possible memory leaks. + * + * However, this can lead to problems in specific lifecycles where + * coroutines are shared and will be reused after documentation generation, + * and closing it down will leave the build in an inoperable state. + * One such example is unit tests, for which finalization should be disabled. + */ + public val finalizeCoroutines: Boolean + + public enum class SerializationFormat : Serializable { + JSON, XML + } + + public interface PluginConfiguration : Serializable { + public val fqPluginName: String + public val serializationFormat: SerializationFormat + public val values: String + } + + public interface DokkaSourceSet : Serializable { + public val sourceSetID: DokkaSourceSetID + public val displayName: String + public val classpath: List<File> + public val sourceRoots: Set<File> + public val dependentSourceSets: Set<DokkaSourceSetID> + public val samples: Set<File> + public val includes: Set<File> + + @Deprecated(message = "Use [documentedVisibilities] property for a more flexible control over documented visibilities") + public val includeNonPublic: Boolean + public val reportUndocumented: Boolean + public val skipEmptyPackages: Boolean + public val skipDeprecated: Boolean + public val jdkVersion: Int + public val sourceLinks: Set<SourceLinkDefinition> + public val perPackageOptions: List<PackageOptions> + public val externalDocumentationLinks: Set<ExternalDocumentationLink> + public val languageVersion: String? + public val apiVersion: String? + public val noStdlibLink: Boolean + public val noJdkLink: Boolean + public val suppressedFiles: Set<File> + public val analysisPlatform: Platform + public val documentedVisibilities: Set<Visibility> + } + + public enum class Visibility { + /** + * `public` modifier for Java, default visibility for Kotlin + */ + PUBLIC, + + /** + * `private` modifier for both Kotlin and Java + */ + PRIVATE, + + /** + * `protected` modifier for both Kotlin and Java + */ + PROTECTED, + + /** + * Kotlin-specific `internal` modifier + */ + INTERNAL, + + /** + * Java-specific package-private visibility (no modifier) + */ + PACKAGE; + + public companion object { + public fun fromString(value: String): Visibility = valueOf(value.toUpperCase()) + } + } + + public interface SourceLinkDefinition : Serializable { + public val localDirectory: String + public val remoteUrl: URL + public val remoteLineSuffix: String? + } + + public interface DokkaModuleDescription : Serializable { + public val name: String + public val relativePathToOutputDirectory: File + public val sourceOutputDirectory: File + public val includes: Set<File> + } + + public interface PackageOptions : Serializable { + public val matchingRegex: String + + @Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities") + public val includeNonPublic: Boolean + public val reportUndocumented: Boolean? + public val skipDeprecated: Boolean + public val suppress: Boolean + public val documentedVisibilities: Set<Visibility> + } + + public interface ExternalDocumentationLink : Serializable { + public val url: URL + public val packageListUrl: URL + + public companion object + } +} + +@Suppress("FunctionName") +public fun ExternalDocumentationLink( + url: URL? = null, + packageListUrl: URL? = null +): ExternalDocumentationLinkImpl { + return if (packageListUrl != null && url != null) + ExternalDocumentationLinkImpl(url, packageListUrl) + else if (url != null) + ExternalDocumentationLinkImpl(url, URL(url, "package-list")) + else + throw IllegalArgumentException("url or url && packageListUrl must not be null for external documentation link") +} + +@Suppress("FunctionName") +public fun ExternalDocumentationLink( + url: String, packageListUrl: String? = null +): ExternalDocumentationLinkImpl = + ExternalDocumentationLink(url.let(::URL), packageListUrl?.let(::URL)) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt new file mode 100644 index 00000000..f858d8c0 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultConfiguration.kt @@ -0,0 +1,100 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet +import java.io.File +import java.net.URL + +public data class DokkaConfigurationImpl( + override val moduleName: String = DokkaDefaults.moduleName, + override val moduleVersion: String? = DokkaDefaults.moduleVersion, + override val outputDir: File = DokkaDefaults.outputDir, + override val cacheRoot: File? = DokkaDefaults.cacheRoot, + override val offlineMode: Boolean = DokkaDefaults.offlineMode, + override val sourceSets: List<DokkaSourceSetImpl> = emptyList(), + override val pluginsClasspath: List<File> = emptyList(), + override val pluginsConfiguration: List<PluginConfigurationImpl> = DokkaDefaults.pluginsConfiguration, + override val modules: List<DokkaModuleDescriptionImpl> = emptyList(), + override val failOnWarning: Boolean = DokkaDefaults.failOnWarning, + override val delayTemplateSubstitution: Boolean = false, + override val suppressObviousFunctions: Boolean = DokkaDefaults.suppressObviousFunctions, + override val includes: Set<File> = emptySet(), + override val suppressInheritedMembers: Boolean = DokkaDefaults.suppressInheritedMembers, + override val finalizeCoroutines: Boolean = true, +) : DokkaConfiguration + +public data class PluginConfigurationImpl( + override val fqPluginName: String, + override val serializationFormat: DokkaConfiguration.SerializationFormat, + override val values: String +) : DokkaConfiguration.PluginConfiguration + + +public data class DokkaSourceSetImpl( + override val displayName: String = DokkaDefaults.sourceSetDisplayName, + override val sourceSetID: DokkaSourceSetID, + override val classpath: List<File> = emptyList(), + override val sourceRoots: Set<File> = emptySet(), + override val dependentSourceSets: Set<DokkaSourceSetID> = emptySet(), + override val samples: Set<File> = emptySet(), + override val includes: Set<File> = emptySet(), + @Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities") + override val includeNonPublic: Boolean = DokkaDefaults.includeNonPublic, + override val reportUndocumented: Boolean = DokkaDefaults.reportUndocumented, + override val skipEmptyPackages: Boolean = DokkaDefaults.skipEmptyPackages, + override val skipDeprecated: Boolean = DokkaDefaults.skipDeprecated, + override val jdkVersion: Int = DokkaDefaults.jdkVersion, + override val sourceLinks: Set<SourceLinkDefinitionImpl> = mutableSetOf(), + override val perPackageOptions: List<PackageOptionsImpl> = mutableListOf(), + override val externalDocumentationLinks: Set<ExternalDocumentationLinkImpl> = mutableSetOf(), + override val languageVersion: String? = null, + override val apiVersion: String? = null, + override val noStdlibLink: Boolean = DokkaDefaults.noStdlibLink, + override val noJdkLink: Boolean = DokkaDefaults.noJdkLink, + override val suppressedFiles: Set<File> = emptySet(), + override val analysisPlatform: Platform = DokkaDefaults.analysisPlatform, + override val documentedVisibilities: Set<DokkaConfiguration.Visibility> = DokkaDefaults.documentedVisibilities, +) : DokkaSourceSet + +public data class DokkaModuleDescriptionImpl( + override val name: String, + override val relativePathToOutputDirectory: File, + override val includes: Set<File>, + override val sourceOutputDirectory: File +) : DokkaConfiguration.DokkaModuleDescription + +public data class SourceLinkDefinitionImpl( + override val localDirectory: String, + override val remoteUrl: URL, + override val remoteLineSuffix: String?, +) : DokkaConfiguration.SourceLinkDefinition { + + public companion object { + public fun parseSourceLinkDefinition(srcLink: String): SourceLinkDefinitionImpl { + val (path, urlAndLine) = srcLink.split('=') + return SourceLinkDefinitionImpl( + localDirectory = File(path).canonicalPath, + remoteUrl = URL(urlAndLine.substringBefore("#")), + remoteLineSuffix = urlAndLine.substringAfter("#", "").let { if (it.isEmpty()) null else "#$it" }) + } + } +} + +public data class PackageOptionsImpl( + override val matchingRegex: String, + @Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities") + override val includeNonPublic: Boolean, + override val reportUndocumented: Boolean?, + override val skipDeprecated: Boolean, + override val suppress: Boolean, + override val documentedVisibilities: Set<DokkaConfiguration.Visibility>, // TODO add default to DokkaDefaults.documentedVisibilities +) : DokkaConfiguration.PackageOptions + + +public data class ExternalDocumentationLinkImpl( + override val url: URL, + override val packageListUrl: URL, +) : DokkaConfiguration.ExternalDocumentationLink diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt new file mode 100644 index 00000000..26e3e0ae --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/defaultExternalLinks.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka + +import org.jetbrains.dokka.DokkaConfiguration.ExternalDocumentationLink +import java.net.URL + + +public fun ExternalDocumentationLink.Companion.jdk(jdkVersion: Int): ExternalDocumentationLinkImpl = + ExternalDocumentationLink( + url = + if (jdkVersion < 11) "https://docs.oracle.com/javase/${jdkVersion}/docs/api/" + else "https://docs.oracle.com/en/java/javase/${jdkVersion}/docs/api/", + packageListUrl = + if (jdkVersion < 11) "https://docs.oracle.com/javase/${jdkVersion}/docs/api/package-list" + else "https://docs.oracle.com/en/java/javase/${jdkVersion}/docs/api/element-list" + ) + + +public fun ExternalDocumentationLink.Companion.kotlinStdlib(): ExternalDocumentationLinkImpl = + ExternalDocumentationLink("https://kotlinlang.org/api/latest/jvm/stdlib/") + + +public fun ExternalDocumentationLink.Companion.androidSdk(): ExternalDocumentationLinkImpl = + ExternalDocumentationLink("https://developer.android.com/reference/kotlin/") + + +public fun ExternalDocumentationLink.Companion.androidX(): ExternalDocumentationLinkImpl = ExternalDocumentationLink( + url = URL("https://developer.android.com/reference/kotlin/"), + packageListUrl = URL("https://developer.android.com/reference/kotlin/androidx/package-list") +) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt new file mode 100644 index 00000000..9f14912f --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/generation/Generation.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.generation + +import org.jetbrains.dokka.Timer + +public interface Generation { + public fun Timer.generate() + public val generationName: String +} + +// This needs to be public for now but in the future it should be replaced with system of checks provided by EP +public fun exitGenerationGracefully(reason: String): Nothing { + throw GracefulGenerationExit(reason) +} + +public class GracefulGenerationExit(public val reason: String) : Throwable() diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt new file mode 100644 index 00000000..180d9eb8 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/links/DRI.kt @@ -0,0 +1,146 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.links + +import com.fasterxml.jackson.annotation.JsonTypeInfo +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id.CLASS +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.module.kotlin.readValue + +/** + * [DRI] stands for DokkaResourceIdentifier + */ +public data class DRI( + val packageName: String? = null, + val classNames: String? = null, + val callable: Callable? = null, + val target: DriTarget = PointingToDeclaration, + val extra: String? = null +) { + override fun toString(): String = + "${packageName.orEmpty()}/${classNames.orEmpty()}/${callable?.name.orEmpty()}/${callable?.signature() + .orEmpty()}/$target/${extra.orEmpty()}" + + public companion object { + public val topLevel: DRI = DRI() + } +} + +public object EnumEntryDRIExtra: DRIExtraProperty<EnumEntryDRIExtra>() + +public abstract class DRIExtraProperty<T> { + public val key: String = this::class.qualifiedName + ?: (this.javaClass.let { it.`package`.name + "." + it.simpleName.ifEmpty { "anonymous" } }) +} + + +public class DRIExtraContainer(public val data: String? = null) { + public val map: MutableMap<String, Any> = if (data != null) OBJECT_MAPPER.readValue(data) else mutableMapOf() + public inline operator fun <reified T> get(prop: DRIExtraProperty<T>): T? = + map[prop.key]?.let { prop as? T } + + public inline operator fun <reified T> set(prop: DRIExtraProperty<T>, value: T) { + map[prop.key] = value as Any + } + + public fun encode(): String = OBJECT_MAPPER.writeValueAsString(map) + + private companion object { + private val OBJECT_MAPPER = ObjectMapper() + } +} + +public val DriOfUnit: DRI = DRI("kotlin", "Unit") +public val DriOfAny: DRI = DRI("kotlin", "Any") + +public fun DRI.withClass(name: String): DRI = copy(classNames = if (classNames.isNullOrBlank()) name else "$classNames.$name") + +public fun DRI.withTargetToDeclaration(): DRI = copy(target = PointingToDeclaration) + +public fun DRI.withEnumEntryExtra(): DRI = copy( + extra = DRIExtraContainer(this.extra).also { it[EnumEntryDRIExtra] = EnumEntryDRIExtra }.encode() +) + +public val DRI.parent: DRI + get() = when { + extra != null -> when { + DRIExtraContainer(extra)[EnumEntryDRIExtra] != null -> copy( + classNames = classNames?.substringBeforeLast(".", "")?.takeIf { it.isNotBlank() }, + extra = null + ) + else -> copy(extra = null) + } + target != PointingToDeclaration -> copy(target = PointingToDeclaration) + callable != null -> copy(callable = null) + classNames != null -> copy(classNames = classNames.substringBeforeLast(".", "").takeIf { it.isNotBlank() }) + else -> DRI.topLevel + } + +public val DRI.sureClassNames: String + get() = classNames ?: throw IllegalStateException("Malformed DRI. It requires classNames in this context.") + +public data class Callable( + val name: String, + val receiver: TypeReference? = null, + val params: List<TypeReference> +) { + public fun signature(): String = "${receiver?.toString().orEmpty()}#${params.joinToString("#")}" + + public companion object +} + +@JsonTypeInfo(use = CLASS) +public sealed class TypeReference { + public companion object +} + +public data class JavaClassReference(val name: String) : TypeReference() { + override fun toString(): String = name +} + +public data class TypeParam(val bounds: List<TypeReference>) : TypeReference() + +public data class TypeConstructor( + val fullyQualifiedName: String, + val params: List<TypeReference> +) : TypeReference() { + override fun toString(): String = fullyQualifiedName + + (if (params.isNotEmpty()) "[${params.joinToString(",")}]" else "") +} + +public data class RecursiveType(val rank: Int): TypeReference() { + override fun toString(): String = "^".repeat(rank + 1) +} + +public data class Nullable(val wrapped: TypeReference) : TypeReference() { + override fun toString(): String = "$wrapped?" +} + +public object StarProjection : TypeReference() { + override fun toString(): String = "*" +} + +@JsonTypeInfo(use = CLASS) +public sealed class DriTarget { + override fun toString(): String = this.javaClass.simpleName + + public companion object +} + +public data class PointingToGenericParameters(val parameterIndex: Int) : DriTarget() { + override fun toString(): String = "PointingToGenericParameters($parameterIndex)" +} + +public object PointingToDeclaration : DriTarget() + +public data class PointingToCallableParameters(val parameterIndex: Int) : DriTarget() { + override fun toString(): String = "PointingToCallableParameters($parameterIndex)" +} + +public fun DriTarget.nextTarget(): DriTarget = when (this) { + is PointingToGenericParameters -> PointingToGenericParameters(this.parameterIndex + 1) + is PointingToCallableParameters -> PointingToCallableParameters(this.parameterIndex + 1) + else -> this +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt new file mode 100644 index 00000000..af7d1a5d --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/CompositeSourceSetID.kt @@ -0,0 +1,46 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.DokkaSourceSetID + +/** + * A unique composite key of multiple [DokkaSourceSetID] that identifies [DisplaySourceSet]. + * Consists of multiple (non-zero) [DokkaSourceSetID] that the corresponding [DisplaySourceSet] was built from. + * + * Should not be constructed or copied outside of [DisplaySourceSet] instantiation. + */ +public data class CompositeSourceSetID( + private val children: Set<DokkaSourceSetID> +) { + public constructor(sourceSetIDs: Iterable<DokkaSourceSetID>) : this(sourceSetIDs.toSet()) + public constructor(sourceSetId: DokkaSourceSetID) : this(setOf(sourceSetId)) + + init { + require(children.isNotEmpty()) { "Expected at least one source set id" } + } + + public val merged: DokkaSourceSetID = children.sortedBy { it.scopeId + it.sourceSetName }.let { sortedChildren -> + DokkaSourceSetID( + scopeId = sortedChildren.joinToString(separator = "+") { it.scopeId }, + sourceSetName = sortedChildren.joinToString(separator = "+") { it.sourceSetName } + ) + } + + public val all: Set<DokkaSourceSetID> = setOf(merged, *children.toTypedArray()) + + public operator fun contains(sourceSetId: DokkaSourceSetID): Boolean { + return sourceSetId in all + } + + public operator fun contains(sourceSet: DokkaConfiguration.DokkaSourceSet): Boolean { + return sourceSet.sourceSetID in this + } + + public operator fun plus(other: DokkaSourceSetID): CompositeSourceSetID { + return copy(children = children + other) + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt new file mode 100644 index 00000000..9d637048 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/DisplaySourceSet.kt @@ -0,0 +1,61 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.* +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet + +/** + * Represents a final user-visible source set in the documentable model that is + * used to specify under which source sets/targets current signatures are available, + * can be used to filter in and out all available signatures under the specified source set, + * and, depending on the format, are rendered as "platform" selectors. + * + * E.g. HTML format renders display source sets as "bubbles" that later are used for filtering + * and informational purposes. + * + * [DisplaySourceSet]s typically have a one-to-one correspondence to the build system source sets, + * are created by the base plugin from [DokkaSourceSet] and never tweaked manually. + * [DisplaySourceSet] is uniquely identified by the corresponding [CompositeSourceSetID]. + * + * @property sourceSetIDs unique stable id of the display source set. + * It is composite by definition, as it uniquely defines the source set and all nested source sets. + * Apart from names, it also contains a substitute to a full source set path in order to differentiate + * source sets with the same name in a stable manner. + * @property name corresponds to the name of the original [DokkaSourceSet] + * @property platform the platform of the source set. If the source set is a mix of multiple source sets + * that correspond to multiple KMP platforms, then it is [Platform.common] + */ +public data class DisplaySourceSet( + val sourceSetIDs: CompositeSourceSetID, + val name: String, + val platform: Platform +) { + public constructor(sourceSet: DokkaSourceSet) : this( + sourceSetIDs = CompositeSourceSetID(sourceSet.sourceSetID), + name = sourceSet.displayName, + platform = sourceSet.analysisPlatform + ) +} + +/** + * Transforms the current [DokkaSourceSet] into [DisplaySourceSet], + * matching the corresponding subset of its properties to [DisplaySourceSet] properties. + */ +public fun DokkaSourceSet.toDisplaySourceSet(): DisplaySourceSet = DisplaySourceSet(this) + +/** + * Transforms all the given [DokkaSourceSet]s into [DisplaySourceSet]s. + */ +public fun Iterable<DokkaSourceSet>.toDisplaySourceSets(): Set<DisplaySourceSet> = + map { it.toDisplaySourceSet() }.toSet() + +@InternalDokkaApi +@Deprecated("Use computeSourceSetIds() and cache its results instead", replaceWith = ReplaceWith("computeSourceSetIds()")) +public val Iterable<DisplaySourceSet>.sourceSetIDs: List<DokkaSourceSetID> get() = this.flatMap { it.sourceSetIDs.all } + +@InternalDokkaApi +public fun Iterable<DisplaySourceSet>.computeSourceSetIds(): Set<DokkaSourceSetID> = + fold(hashSetOf()) { acc, set -> acc.addAll(set.sourceSetIDs.all); acc } diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt new file mode 100644 index 00000000..c6109f47 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/Documentable.kt @@ -0,0 +1,540 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.doc.DocumentationNode +import org.jetbrains.dokka.model.properties.PropertyContainer +import org.jetbrains.dokka.model.properties.WithExtraProperties + +public interface AnnotationTarget + +public abstract class Documentable : WithChildren<Documentable>, + AnnotationTarget { + public abstract val name: String? + public abstract val dri: DRI + public abstract val documentation: SourceSetDependent<DocumentationNode> + public abstract val sourceSets: Set<DokkaSourceSet> + public abstract val expectPresentInSet: DokkaSourceSet? + abstract override val children: List<Documentable> + + override fun toString(): String = + "${javaClass.simpleName}($dri)" + + override fun equals(other: Any?): Boolean = + other is Documentable && this.dri == other.dri // TODO: https://github.com/Kotlin/dokka/pull/667#discussion_r382555806 + + override fun hashCode(): Int = dri.hashCode() +} + +public typealias SourceSetDependent<T> = Map<DokkaSourceSet, T> + +public interface WithSources { + public val sources: SourceSetDependent<DocumentableSource> +} + +public interface WithScope { + public val functions: List<DFunction> + public val properties: List<DProperty> + public val classlikes: List<DClasslike> +} + +public interface WithVisibility { + public val visibility: SourceSetDependent<Visibility> +} + +public interface WithType { + public val type: Bound +} + +public interface WithAbstraction { + public val modifier: SourceSetDependent<Modifier> +} + +public sealed class Modifier( + public val name: String +) + +public sealed class KotlinModifier(name: String) : Modifier(name) { + public object Abstract : KotlinModifier("abstract") + public object Open : KotlinModifier("open") + public object Final : KotlinModifier("final") + public object Sealed : KotlinModifier("sealed") + public object Empty : KotlinModifier("") +} + +public sealed class JavaModifier(name: String) : Modifier(name) { + public object Abstract : JavaModifier("abstract") + public object Final : JavaModifier("final") + public object Empty : JavaModifier("") +} + +public interface WithCompanion { + public val companion: DObject? +} + +public interface WithConstructors { + public val constructors: List<DFunction> +} + +public interface WithGenerics { + public val generics: List<DTypeParameter> +} + +public interface WithSupertypes { + public val supertypes: SourceSetDependent<List<TypeConstructorWithKind>> +} + +public interface WithIsExpectActual { + public val isExpectActual: Boolean +} + +public interface Callable : WithVisibility, WithType, WithAbstraction, WithSources, WithIsExpectActual { + public val receiver: DParameter? +} + +public sealed class DClasslike : Documentable(), WithScope, WithVisibility, WithSources, WithIsExpectActual + +public data class DModule( + override val name: String, + val packages: List<DPackage>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet? = null, + override val sourceSets: Set<DokkaSourceSet>, + override val extra: PropertyContainer<DModule> = PropertyContainer.empty() +) : Documentable(), WithExtraProperties<DModule> { + override val dri: DRI = DRI.topLevel + override val children: List<Documentable> + get() = packages + + override fun withNewExtras(newExtras: PropertyContainer<DModule>): DModule = copy(extra = newExtras) +} + +public data class DPackage( + override val dri: DRI, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + val typealiases: List<DTypeAlias>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet? = null, + override val sourceSets: Set<DokkaSourceSet>, + override val extra: PropertyContainer<DPackage> = PropertyContainer.empty() +) : Documentable(), WithScope, WithExtraProperties<DPackage> { + + val packageName: String = dri.packageName.orEmpty() + + /** + * !!! WARNING !!! + * This name is not guaranteed to be a be a canonical/real package name. + * e.g. this will return a human readable version for root packages. + * Use [packageName] or `dri.packageName` instead to obtain the real packageName + */ + override val name: String = packageName.ifBlank { "[root]" } + + override val children: List<Documentable> = properties + functions + classlikes + typealiases + + override fun withNewExtras(newExtras: PropertyContainer<DPackage>): DPackage = copy(extra = newExtras) +} + +public data class DClass( + override val dri: DRI, + override val name: String, + override val constructors: List<DFunction>, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + override val sources: SourceSetDependent<DocumentableSource>, + override val visibility: SourceSetDependent<Visibility>, + override val companion: DObject?, + override val generics: List<DTypeParameter>, + override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val modifier: SourceSetDependent<Modifier>, + override val sourceSets: Set<DokkaSourceSet>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DClass> = PropertyContainer.empty() +) : DClasslike(), WithAbstraction, WithCompanion, WithConstructors, WithGenerics, WithSupertypes, + WithExtraProperties<DClass> { + + override val children: List<Documentable> + get() = (functions + properties + classlikes + constructors) + + override fun withNewExtras(newExtras: PropertyContainer<DClass>): DClass = copy(extra = newExtras) +} + +public data class DEnum( + override val dri: DRI, + override val name: String, + val entries: List<DEnumEntry>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sources: SourceSetDependent<DocumentableSource>, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + override val visibility: SourceSetDependent<Visibility>, + override val companion: DObject?, + override val constructors: List<DFunction>, + override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>, + override val sourceSets: Set<DokkaSourceSet>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DEnum> = PropertyContainer.empty() +) : DClasslike(), WithCompanion, WithConstructors, WithSupertypes, WithExtraProperties<DEnum> { + override val children: List<Documentable> + get() = (entries + functions + properties + classlikes + constructors) + + override fun withNewExtras(newExtras: PropertyContainer<DEnum>): DEnum = copy(extra = newExtras) +} + +public data class DEnumEntry( + override val dri: DRI, + override val name: String, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + override val sourceSets: Set<DokkaSourceSet>, + override val extra: PropertyContainer<DEnumEntry> = PropertyContainer.empty() +) : Documentable(), WithScope, WithExtraProperties<DEnumEntry> { + override val children: List<Documentable> + get() = (functions + properties + classlikes) + + override fun withNewExtras(newExtras: PropertyContainer<DEnumEntry>): DEnumEntry = copy(extra = newExtras) +} + +public data class DFunction( + override val dri: DRI, + override val name: String, + val isConstructor: Boolean, + val parameters: List<DParameter>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sources: SourceSetDependent<DocumentableSource>, + override val visibility: SourceSetDependent<Visibility>, + override val type: Bound, + override val generics: List<DTypeParameter>, + override val receiver: DParameter?, + override val modifier: SourceSetDependent<Modifier>, + override val sourceSets: Set<DokkaSourceSet>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DFunction> = PropertyContainer.empty() +) : Documentable(), Callable, WithGenerics, WithExtraProperties<DFunction> { + override val children: List<Documentable> + get() = parameters + + override fun withNewExtras(newExtras: PropertyContainer<DFunction>): DFunction = copy(extra = newExtras) +} + +public data class DInterface( + override val dri: DRI, + override val name: String, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sources: SourceSetDependent<DocumentableSource>, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + override val visibility: SourceSetDependent<Visibility>, + override val companion: DObject?, + override val generics: List<DTypeParameter>, + override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>, + override val sourceSets: Set<DokkaSourceSet>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DInterface> = PropertyContainer.empty() +) : DClasslike(), WithCompanion, WithGenerics, WithSupertypes, WithExtraProperties<DInterface> { + override val children: List<Documentable> + get() = (functions + properties + classlikes) + + override fun withNewExtras(newExtras: PropertyContainer<DInterface>): DInterface = copy(extra = newExtras) +} + +public data class DObject( + override val name: String?, + override val dri: DRI, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sources: SourceSetDependent<DocumentableSource>, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + override val visibility: SourceSetDependent<Visibility>, + override val supertypes: SourceSetDependent<List<TypeConstructorWithKind>>, + override val sourceSets: Set<DokkaSourceSet>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DObject> = PropertyContainer.empty() +) : DClasslike(), WithSupertypes, WithExtraProperties<DObject> { + override val children: List<Documentable> + get() = (functions + properties + classlikes) + + override fun withNewExtras(newExtras: PropertyContainer<DObject>): DObject = copy(extra = newExtras) +} + +public data class DAnnotation( + override val name: String, + override val dri: DRI, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sources: SourceSetDependent<DocumentableSource>, + override val functions: List<DFunction>, + override val properties: List<DProperty>, + override val classlikes: List<DClasslike>, + override val visibility: SourceSetDependent<Visibility>, + override val companion: DObject?, + override val constructors: List<DFunction>, + override val generics: List<DTypeParameter>, + override val sourceSets: Set<DokkaSourceSet>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DAnnotation> = PropertyContainer.empty() +) : DClasslike(), WithCompanion, WithConstructors, WithExtraProperties<DAnnotation>, WithGenerics { + override val children: List<Documentable> + get() = (functions + properties + classlikes + constructors) + + override fun withNewExtras(newExtras: PropertyContainer<DAnnotation>): DAnnotation = copy(extra = newExtras) +} + +public data class DProperty( + override val dri: DRI, + override val name: String, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sources: SourceSetDependent<DocumentableSource>, + override val visibility: SourceSetDependent<Visibility>, + override val type: Bound, + override val receiver: DParameter?, + val setter: DFunction?, + val getter: DFunction?, + override val modifier: SourceSetDependent<Modifier>, + override val sourceSets: Set<DokkaSourceSet>, + override val generics: List<DTypeParameter>, + override val isExpectActual: Boolean, + override val extra: PropertyContainer<DProperty> = PropertyContainer.empty() +) : Documentable(), Callable, WithExtraProperties<DProperty>, WithGenerics { + override val children: List<Nothing> + get() = emptyList() + + override fun withNewExtras(newExtras: PropertyContainer<DProperty>): DProperty = copy(extra = newExtras) +} + +// TODO: treat named Parameters and receivers differently +public data class DParameter( + override val dri: DRI, + override val name: String?, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val type: Bound, + override val sourceSets: Set<DokkaSourceSet>, + override val extra: PropertyContainer<DParameter> = PropertyContainer.empty() +) : Documentable(), WithExtraProperties<DParameter>, WithType { + override val children: List<Nothing> + get() = emptyList() + + override fun withNewExtras(newExtras: PropertyContainer<DParameter>): DParameter = copy(extra = newExtras) +} + +public data class DTypeParameter( + val variantTypeParameter: Variance<TypeParameter>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + val bounds: List<Bound>, + override val sourceSets: Set<DokkaSourceSet>, + override val extra: PropertyContainer<DTypeParameter> = PropertyContainer.empty() +) : Documentable(), WithExtraProperties<DTypeParameter> { + + public constructor( + dri: DRI, + name: String, + presentableName: String?, + documentation: SourceSetDependent<DocumentationNode>, + expectPresentInSet: DokkaSourceSet?, + bounds: List<Bound>, + sourceSets: Set<DokkaSourceSet>, + extra: PropertyContainer<DTypeParameter> = PropertyContainer.empty() + ) : this( + Invariance(TypeParameter(dri, name, presentableName)), + documentation, + expectPresentInSet, + bounds, + sourceSets, + extra + ) + + override val dri: DRI by variantTypeParameter.inner::dri + override val name: String by variantTypeParameter.inner::name + + override val children: List<Nothing> + get() = emptyList() + + override fun withNewExtras(newExtras: PropertyContainer<DTypeParameter>): DTypeParameter = copy(extra = newExtras) +} + +public data class DTypeAlias( + override val dri: DRI, + override val name: String, + override val type: Bound, + val underlyingType: SourceSetDependent<Bound>, + override val visibility: SourceSetDependent<Visibility>, + override val documentation: SourceSetDependent<DocumentationNode>, + override val expectPresentInSet: DokkaSourceSet?, + override val sourceSets: Set<DokkaSourceSet>, + override val generics: List<DTypeParameter>, + override val sources: SourceSetDependent<DocumentableSource>, + override val extra: PropertyContainer<DTypeAlias> = PropertyContainer.empty() +) : Documentable(), WithType, WithVisibility, WithExtraProperties<DTypeAlias>, WithGenerics, WithSources { + override val children: List<Nothing> + get() = emptyList() + + override fun withNewExtras(newExtras: PropertyContainer<DTypeAlias>): DTypeAlias = copy(extra = newExtras) +} + +public sealed class Projection +public sealed class Bound : Projection() +public data class TypeParameter( + val dri: DRI, + val name: String, + val presentableName: String? = null, + override val extra: PropertyContainer<TypeParameter> = PropertyContainer.empty() +) : Bound(), AnnotationTarget, WithExtraProperties<TypeParameter> { + override fun withNewExtras(newExtras: PropertyContainer<TypeParameter>): TypeParameter = + copy(extra = extra) +} + +public sealed class TypeConstructor : Bound(), AnnotationTarget { + public abstract val dri: DRI + public abstract val projections: List<Projection> + public abstract val presentableName: String? +} + +public data class GenericTypeConstructor( + override val dri: DRI, + override val projections: List<Projection>, + override val presentableName: String? = null, + override val extra: PropertyContainer<GenericTypeConstructor> = PropertyContainer.empty() +) : TypeConstructor(), WithExtraProperties<GenericTypeConstructor> { + override fun withNewExtras(newExtras: PropertyContainer<GenericTypeConstructor>): GenericTypeConstructor = + copy(extra = newExtras) +} + +public data class FunctionalTypeConstructor( + override val dri: DRI, + override val projections: List<Projection>, + val isExtensionFunction: Boolean = false, + val isSuspendable: Boolean = false, + override val presentableName: String? = null, + override val extra: PropertyContainer<FunctionalTypeConstructor> = PropertyContainer.empty(), +) : TypeConstructor(), WithExtraProperties<FunctionalTypeConstructor> { + override fun withNewExtras(newExtras: PropertyContainer<FunctionalTypeConstructor>): FunctionalTypeConstructor = + copy(extra = newExtras) +} + +// kotlin.annotation.AnnotationTarget.TYPEALIAS +public data class TypeAliased( + val typeAlias: Bound, + val inner: Bound, + override val extra: PropertyContainer<TypeAliased> = PropertyContainer.empty() +) : Bound(), AnnotationTarget, WithExtraProperties<TypeAliased> { + override fun withNewExtras(newExtras: PropertyContainer<TypeAliased>): TypeAliased = + copy(extra = newExtras) +} + +public data class PrimitiveJavaType( + val name: String, + override val extra: PropertyContainer<PrimitiveJavaType> = PropertyContainer.empty() +) : Bound(), AnnotationTarget, WithExtraProperties<PrimitiveJavaType> { + override fun withNewExtras(newExtras: PropertyContainer<PrimitiveJavaType>): PrimitiveJavaType = + copy(extra = newExtras) +} + +public data class JavaObject(override val extra: PropertyContainer<JavaObject> = PropertyContainer.empty()) : + Bound(), AnnotationTarget, WithExtraProperties<JavaObject> { + override fun withNewExtras(newExtras: PropertyContainer<JavaObject>): JavaObject = + copy(extra = newExtras) +} + +public data class UnresolvedBound( + val name: String, + override val extra: PropertyContainer<UnresolvedBound> = PropertyContainer.empty() +) : Bound(), AnnotationTarget, WithExtraProperties<UnresolvedBound> { + override fun withNewExtras(newExtras: PropertyContainer<UnresolvedBound>): UnresolvedBound = + copy(extra = newExtras) +} + +// The following Projections are not AnnotationTargets; they cannot be annotated. +public data class Nullable(val inner: Bound) : Bound() + +/** + * It introduces [definitely non-nullable types](https://github.com/Kotlin/KEEP/blob/c72601cf35c1e95a541bb4b230edb474a6d1d1a8/proposals/definitely-non-nullable-types.md) + */ +public data class DefinitelyNonNullable(val inner: Bound) : Bound() + +public sealed class Variance<out T : Bound> : Projection() { + public abstract val inner: T +} + +public data class Covariance<out T : Bound>(override val inner: T) : Variance<T>() { + override fun toString(): String = "out" +} + +public data class Contravariance<out T : Bound>(override val inner: T) : Variance<T>() { + override fun toString(): String = "in" +} + +public data class Invariance<out T : Bound>(override val inner: T) : Variance<T>() { + override fun toString(): String = "" +} + +public object Star : Projection() + +public object Void : Bound() +public object Dynamic : Bound() + +public fun Variance<TypeParameter>.withDri(dri: DRI): Variance<TypeParameter> = when (this) { + is Contravariance -> Contravariance(TypeParameter(dri, inner.name, inner.presentableName)) + is Covariance -> Covariance(TypeParameter(dri, inner.name, inner.presentableName)) + is Invariance -> Invariance(TypeParameter(dri, inner.name, inner.presentableName)) +} + +public fun Documentable.dfs(predicate: (Documentable) -> Boolean): Documentable? = + if (predicate(this)) { + this + } else { + this.children.asSequence().mapNotNull { it.dfs(predicate) }.firstOrNull() + } + +public sealed class Visibility(public val name: String) + +public sealed class KotlinVisibility(name: String) : Visibility(name) { + public object Public : KotlinVisibility("public") + public object Private : KotlinVisibility("private") + public object Protected : KotlinVisibility("protected") + public object Internal : KotlinVisibility("internal") +} + +public sealed class JavaVisibility(name: String) : Visibility(name) { + public object Public : JavaVisibility("public") + public object Private : JavaVisibility("private") + public object Protected : JavaVisibility("protected") + public object Default : JavaVisibility("") +} + +public fun <T> SourceSetDependent<T>?.orEmpty(): SourceSetDependent<T> = this ?: emptyMap() + +public interface DocumentableSource { + public val path: String + + /** + * Computes the first line number of the documentable's declaration/signature/identifier. + * + * Numbering is always 1-based. + * + * May return null if the sources could not be found - for example, for synthetic/generated declarations. + */ + public fun computeLineNumber(): Int? +} + +public data class TypeConstructorWithKind(val typeConstructor: TypeConstructor, val kind: ClassKind) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt new file mode 100644 index 00000000..a2b641c9 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/JvmField.kt @@ -0,0 +1,14 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.links.DRI + +public const val JVM_FIELD_PACKAGE_NAME: String = "kotlin.jvm" +public const val JVM_FIELD_CLASS_NAMES: String = "JvmField" + +public fun DRI.isJvmField(): Boolean = packageName == JVM_FIELD_PACKAGE_NAME && classNames == JVM_FIELD_CLASS_NAMES + +public fun Annotations.Annotation.isJvmField(): Boolean = dri.isJvmField() diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt new file mode 100644 index 00000000..f73a5aa0 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/WithChildren.kt @@ -0,0 +1,98 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +public interface WithChildren<out T> { + public val children: List<T> +} + +public inline fun <reified T> WithChildren<*>.firstChildOfTypeOrNull(): T? = + children.filterIsInstance<T>().firstOrNull() + +public inline fun <reified T> WithChildren<*>.firstChildOfTypeOrNull(predicate: (T) -> Boolean): T? = + children.filterIsInstance<T>().firstOrNull(predicate) + +public inline fun <reified T> WithChildren<*>.firstChildOfType(): T = + children.filterIsInstance<T>().first() + +public inline fun <reified T> WithChildren<*>.childrenOfType(): List<T> = + children.filterIsInstance<T>() + +public inline fun <reified T> WithChildren<*>.firstChildOfType(predicate: (T) -> Boolean): T = + children.filterIsInstance<T>().first(predicate) + +public inline fun <reified T> WithChildren<WithChildren<*>>.firstMemberOfType(): T where T : WithChildren<*> { + return withDescendants().filterIsInstance<T>().first() +} + +public inline fun <reified T> WithChildren<WithChildren<*>>.firstMemberOfType( + predicate: (T) -> Boolean +): T where T : WithChildren<*> = withDescendants().filterIsInstance<T>().first(predicate) + + +public inline fun <reified T> WithChildren<WithChildren<*>>.firstMemberOfTypeOrNull(): T? where T : WithChildren<*> { + return withDescendants().filterIsInstance<T>().firstOrNull() +} + +public fun <T> T.withDescendants(): Sequence<T> where T : WithChildren<T> { + return sequence { + yield(this@withDescendants) + children.forEach { child -> + yieldAll(child.withDescendants()) + } + } +} + +@JvmName("withDescendantsProjection") +public fun WithChildren<*>.withDescendants(): Sequence<Any?> { + return sequence { + yield(this@withDescendants) + children.forEach { child -> + if (child is WithChildren<*>) { + yieldAll(child.withDescendants()) + } + } + } +} + +@JvmName("withDescendantsAny") +public fun WithChildren<Any>.withDescendants(): Sequence<Any> { + return sequence { + yield(this@withDescendants) + children.forEach { child -> + if (child is WithChildren<*>) { + yieldAll(child.withDescendants().filterNotNull()) + } + } + } +} + +public fun <T> T.dfs(predicate: (T) -> Boolean): T? where T : WithChildren<T> = if (predicate(this)) { + this +} else { + children.asSequence().mapNotNull { it.dfs(predicate) }.firstOrNull() +} + +public fun <T : WithChildren<T>> T.asPrintableTree( + nodeNameBuilder: Appendable.(T) -> Unit = { append(it.toString()) } +): String { + fun Appendable.append(element: T, ownPrefix: String, childPrefix: String) { + append(ownPrefix) + nodeNameBuilder(element) + appendLine() + element.children.takeIf(Collection<*>::isNotEmpty)?.also { children -> + val newOwnPrefix = "$childPrefix├─ " + val lastOwnPrefix = "$childPrefix└─ " + val newChildPrefix = "$childPrefix│ " + val lastChildPrefix = "$childPrefix " + children.forEachIndexed { n, e -> + if (n != children.lastIndex) append(e, newOwnPrefix, newChildPrefix) + else append(e, lastOwnPrefix, lastChildPrefix) + } + } + } + + return buildString { append(this@asPrintableTree, "", "") } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt new file mode 100644 index 00000000..1db8e59d --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/additionalExtras.kt @@ -0,0 +1,142 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.properties.ExtraProperty +import org.jetbrains.dokka.model.properties.MergeStrategy + +public class AdditionalModifiers( + public val content: SourceSetDependent<Set<ExtraModifiers>> +) : ExtraProperty<Documentable> { + + public companion object : ExtraProperty.Key<Documentable, AdditionalModifiers> { + override fun mergeStrategyFor( + left: AdditionalModifiers, + right: AdditionalModifiers + ): MergeStrategy<Documentable> = MergeStrategy.Replace(AdditionalModifiers(left.content + right.content)) + } + + override fun equals(other: Any?): Boolean = + if (other is AdditionalModifiers) other.content == content else false + + override fun hashCode(): Int = content.hashCode() + override val key: ExtraProperty.Key<Documentable, *> = AdditionalModifiers +} + +public fun SourceSetDependent<Set<ExtraModifiers>>.toAdditionalModifiers(): AdditionalModifiers = AdditionalModifiers(this) + +public data class Annotations( + private val myContent: SourceSetDependent<List<Annotation>> +) : ExtraProperty<AnnotationTarget> { + public companion object : ExtraProperty.Key<AnnotationTarget, Annotations> { + override fun mergeStrategyFor(left: Annotations, right: Annotations): MergeStrategy<AnnotationTarget> = + MergeStrategy.Replace(Annotations(left.myContent + right.myContent)) + } + + override val key: ExtraProperty.Key<AnnotationTarget, *> = Annotations + + public data class Annotation( + val dri: DRI, + val params: Map<String, AnnotationParameterValue>, + val mustBeDocumented: Boolean = false, + val scope: AnnotationScope = AnnotationScope.DIRECT + ) { + override fun equals(other: Any?): Boolean = when (other) { + is Annotation -> dri == other.dri + else -> false + } + + override fun hashCode(): Int = dri.hashCode() + } + + @Deprecated("Use directAnnotations or fileLevelAnnotations") + val content: SourceSetDependent<List<Annotation>> + get() = myContent + + val directAnnotations: SourceSetDependent<List<Annotation>> = annotationsByScope(AnnotationScope.DIRECT) + + val fileLevelAnnotations: SourceSetDependent<List<Annotation>> = annotationsByScope(AnnotationScope.FILE) + + private fun annotationsByScope(scope: AnnotationScope): SourceSetDependent<List<Annotation>> = + myContent.entries.mapNotNull { (key, value) -> + val withoutFileLevel = value.filter { it.scope == scope } + if (withoutFileLevel.isEmpty()) null + else Pair(key, withoutFileLevel) + }.toMap() + + public enum class AnnotationScope { + DIRECT, FILE, GETTER, SETTER + } +} + +public fun SourceSetDependent<List<Annotations.Annotation>>.toAnnotations(): Annotations = Annotations(this) + +public sealed class AnnotationParameterValue + +public data class AnnotationValue(val annotation: Annotations.Annotation) : AnnotationParameterValue() + +public data class ArrayValue(val value: List<AnnotationParameterValue>) : AnnotationParameterValue() + +public data class EnumValue(val enumName: String, val enumDri: DRI) : AnnotationParameterValue() + +public data class ClassValue(val className: String, val classDRI: DRI) : AnnotationParameterValue() + +public abstract class LiteralValue : AnnotationParameterValue() { + public abstract fun text() : String +} +public data class IntValue(val value: Int) : LiteralValue() { + override fun text(): String = value.toString() +} + +public data class LongValue(val value: Long) : LiteralValue() { + override fun text(): String = value.toString() +} + +public data class FloatValue(val value: Float) : LiteralValue() { + override fun text(): String = value.toString() +} + +public data class DoubleValue(val value: Double) : LiteralValue() { + override fun text(): String = value.toString() +} + +public object NullValue : LiteralValue() { + override fun text(): String = "null" +} + +public data class BooleanValue(val value: Boolean) : LiteralValue() { + override fun text(): String = value.toString() +} + +public data class StringValue(val value: String) : LiteralValue() { + override fun text(): String = value + override fun toString(): String = value +} + +public object PrimaryConstructorExtra : ExtraProperty<DFunction>, ExtraProperty.Key<DFunction, PrimaryConstructorExtra> { + override val key: ExtraProperty.Key<DFunction, *> = this +} + +public data class ActualTypealias( + val typeAlias: DTypeAlias +) : ExtraProperty<DClasslike> { + + @Suppress("unused") + @Deprecated(message = "It can be removed soon. Use [typeAlias.underlyingType]", ReplaceWith("this.typeAlias.underlyingType")) + val underlyingType: SourceSetDependent<Bound> + get() = typeAlias.underlyingType + + public companion object : ExtraProperty.Key<DClasslike, ActualTypealias> { + override fun mergeStrategyFor( + left: ActualTypealias, + right: ActualTypealias + ): MergeStrategy<DClasslike> = MergeStrategy.Fail { + throw IllegalStateException("Adding [ActualTypealias] should be after merging all documentables") + } + } + + override val key: ExtraProperty.Key<DClasslike, ActualTypealias> = ActualTypealias +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt new file mode 100644 index 00000000..7203ab18 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/ancestryNode.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +public data class AncestryNode( + val typeConstructor: TypeConstructor, + val superclass: AncestryNode?, + val interfaces: List<AncestryNode>, +) { + public fun allImplementedInterfaces(): List<TypeConstructor> { + fun traverseInterfaces(ancestry: AncestryNode): List<TypeConstructor> = + ancestry.interfaces.flatMap { listOf(it.typeConstructor) + traverseInterfaces(it) } + + (ancestry.superclass?.let(::traverseInterfaces) ?: emptyList()) + return traverseInterfaces(this).distinct() + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt new file mode 100644 index 00000000..25256022 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/classKinds.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +public interface ClassKind + +public enum class KotlinClassKindTypes : ClassKind { + CLASS, + INTERFACE, + ENUM_CLASS, + ENUM_ENTRY, + ANNOTATION_CLASS, + OBJECT; +} + +public enum class JavaClassKindTypes : ClassKind { + CLASS, + INTERFACE, + ENUM_CLASS, + ENUM_ENTRY, + ANNOTATION_CLASS; +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt new file mode 100644 index 00000000..426954fb --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/defaultValues.kt @@ -0,0 +1,34 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.model.properties.ExtraProperty +import org.jetbrains.dokka.model.properties.MergeStrategy + +public class DefaultValue( + public val expression: SourceSetDependent<Expression> +): ExtraProperty<Documentable> { + + @Deprecated("Use `expression` property that depends on source set", ReplaceWith("this.expression.values.first()")) + public val value: Expression + get() = expression.values.first() + + public companion object : ExtraProperty.Key<Documentable, DefaultValue> { + override fun mergeStrategyFor(left: DefaultValue, right: DefaultValue): MergeStrategy<Documentable> = + MergeStrategy.Replace(DefaultValue(left.expression + right.expression)) + + } + + override val key: ExtraProperty.Key<Documentable, *> + get() = Companion +} + +public interface Expression +public data class ComplexExpression(val value: String) : Expression +public data class IntegerConstant(val value: Long) : Expression +public data class StringConstant(val value: String) : Expression +public data class DoubleConstant(val value: Double) : Expression +public data class FloatConstant(val value: Float) : Expression +public data class BooleanConstant(val value: Boolean) : Expression diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt new file mode 100644 index 00000000..f4cb9b33 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocTag.kt @@ -0,0 +1,372 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model.doc + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.WithChildren + +public sealed class DocTag : WithChildren<DocTag> { + public abstract val params: Map<String, String> + + public companion object { + public fun contentTypeParam(type: String): Map<String, String> = mapOf("content-type" to type) + } +} + +public data class A( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Big( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class B( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class BlockQuote( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public object Br : DocTag() { + override val children: List<DocTag> = emptyList() + override val params: Map<String, String> = emptyMap() +} + +public data class Cite( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public sealed class Code : DocTag() + +public data class CodeInline( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : Code() + +public data class CodeBlock( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : Code() + +public data class CustomDocTag( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap(), + val name: String +) : DocTag() + +public data class Dd( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Dfn( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Dir( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Div( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Dl( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class DocumentationLink( + val dri: DRI, + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Dt( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Em( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Font( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Footer( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Frame( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class FrameSet( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class H1( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class H2( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class H3( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class H4( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class H5( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class H6( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Head( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Header( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public object HorizontalRule : DocTag() { + override val children: List<DocTag> = emptyList() + override val params: Map<String, String> = emptyMap() +} + +public data class Html( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class I( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class IFrame( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Img( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Index( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Input( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Li( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Link( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Listing( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Main( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Menu( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Meta( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Nav( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class NoFrames( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class NoScript( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Ol( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class P( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Pre( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Script( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Section( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Small( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Span( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Strikethrough( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Strong( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Sub( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Sup( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Table( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Text( + val body: String = "", + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class TBody( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Td( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class TFoot( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Th( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class THead( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Title( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Tr( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Tt( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class U( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Ul( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Var( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + +public data class Caption( + override val children: List<DocTag> = emptyList(), + override val params: Map<String, String> = emptyMap() +) : DocTag() + diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt new file mode 100644 index 00000000..9c270f79 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/DocumentationNode.kt @@ -0,0 +1,9 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model.doc + +import org.jetbrains.dokka.model.WithChildren + +public data class DocumentationNode(override val children: List<TagWrapper>): WithChildren<TagWrapper> diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt new file mode 100644 index 00000000..e3eaffb7 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/doc/TagWrapper.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model.doc + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.WithChildren + +public sealed class TagWrapper : WithChildren<DocTag> { + public abstract val root: DocTag + + override val children: List<DocTag> + get() = root.children +} + +public sealed class NamedTagWrapper : TagWrapper() { + public abstract val name: String +} + +public data class Description(override val root: DocTag) : TagWrapper() +public data class Author(override val root: DocTag) : TagWrapper() +public data class Version(override val root: DocTag) : TagWrapper() +public data class Since(override val root: DocTag) : TagWrapper() +public data class See(override val root: DocTag, override val name: String, val address: DRI?) : NamedTagWrapper() +public data class Param(override val root: DocTag, override val name: String) : NamedTagWrapper() +public data class Return(override val root: DocTag) : TagWrapper() +public data class Receiver(override val root: DocTag) : TagWrapper() +public data class Constructor(override val root: DocTag) : TagWrapper() +//TODO this naming is confusing since kotlin has Throws annotation +public data class Throws(override val root: DocTag, override val name: String, val exceptionAddress: DRI?) : NamedTagWrapper() +public data class Sample(override val root: DocTag, override val name: String) : NamedTagWrapper() +public data class Deprecated(override val root: DocTag) : TagWrapper() +public data class Property(override val root: DocTag, override val name: String) : NamedTagWrapper() +public data class Suppress(override val root: DocTag) : TagWrapper() +public data class CustomTagWrapper(override val root: DocTag, override val name: String) : NamedTagWrapper() diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt new file mode 100644 index 00000000..b0ebb6ef --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableProperties.kt @@ -0,0 +1,71 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.properties.ExtraProperty +import org.jetbrains.dokka.model.properties.MergeStrategy + +public data class InheritedMember(val inheritedFrom: SourceSetDependent<DRI?>) : ExtraProperty<Documentable> { + public companion object : ExtraProperty.Key<Documentable, InheritedMember> { + override fun mergeStrategyFor(left: InheritedMember, right: InheritedMember): MergeStrategy<Documentable> = MergeStrategy.Replace( + InheritedMember(left.inheritedFrom + right.inheritedFrom) + ) + } + + public fun isInherited(sourceSetDependent: DokkaSourceSet): Boolean = inheritedFrom[sourceSetDependent] != null + + override val key: ExtraProperty.Key<Documentable, *> = InheritedMember +} + +public data class ImplementedInterfaces(val interfaces: SourceSetDependent<List<TypeConstructor>>) : ExtraProperty<Documentable> { + public companion object : ExtraProperty.Key<Documentable, ImplementedInterfaces> { + override fun mergeStrategyFor(left: ImplementedInterfaces, right: ImplementedInterfaces): MergeStrategy<Documentable> = + MergeStrategy.Replace(ImplementedInterfaces(left.interfaces + right.interfaces)) + } + + override val key: ExtraProperty.Key<Documentable, *> = ImplementedInterfaces +} + +public data class ExceptionInSupertypes(val exceptions: SourceSetDependent<List<TypeConstructor>>): ExtraProperty<Documentable> { + public companion object : ExtraProperty.Key<Documentable, ExceptionInSupertypes> { + override fun mergeStrategyFor(left: ExceptionInSupertypes, right: ExceptionInSupertypes): MergeStrategy<Documentable> = + MergeStrategy.Replace(ExceptionInSupertypes(left.exceptions + right.exceptions)) + } + + override val key: ExtraProperty.Key<Documentable, *> = ExceptionInSupertypes +} + +public object ObviousMember : ExtraProperty<Documentable>, ExtraProperty.Key<Documentable, ObviousMember> { + override val key: ExtraProperty.Key<Documentable, *> = this +} + +/** + * Whether this [DProperty] is `var` or `val`, should be present both in Kotlin and in Java properties + * + * In case of properties that came from `Java`, [IsVar] is added if + * the java field has no accessors at all (plain field) or has a setter + */ +public object IsVar : ExtraProperty<DProperty>, ExtraProperty.Key<DProperty, IsVar> { + override val key: ExtraProperty.Key<DProperty, *> = this +} + +public data class IsAlsoParameter(val inSourceSets: List<DokkaSourceSet>) : ExtraProperty<DProperty> { + public companion object : ExtraProperty.Key<DProperty, IsAlsoParameter> { + override fun mergeStrategyFor(left: IsAlsoParameter, right: IsAlsoParameter): MergeStrategy<DProperty> = + MergeStrategy.Replace(IsAlsoParameter(left.inSourceSets + right.inSourceSets)) + } + + override val key: ExtraProperty.Key<DProperty, *> = IsAlsoParameter +} + +public data class CheckedExceptions(val exceptions: SourceSetDependent<List<DRI>>) : ExtraProperty<Documentable>, ExtraProperty.Key<Documentable, ObviousMember> { + public companion object : ExtraProperty.Key<Documentable, CheckedExceptions> { + override fun mergeStrategyFor(left: CheckedExceptions, right: CheckedExceptions): MergeStrategy<Documentable> = + MergeStrategy.Replace(CheckedExceptions(left.exceptions + right.exceptions)) + } + override val key: ExtraProperty.Key<Documentable, *> = CheckedExceptions +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt new file mode 100644 index 00000000..c9d75bf4 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/documentableUtils.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet + +public fun <T> SourceSetDependent<T>.filtered(sourceSets: Set<DokkaSourceSet>): SourceSetDependent<T> = filter { it.key in sourceSets } +public fun DokkaSourceSet?.filtered(sourceSets: Set<DokkaSourceSet>): DokkaSourceSet? = takeIf { this in sourceSets } + +public fun DTypeParameter.filter(filteredSet: Set<DokkaSourceSet>): DTypeParameter? = + if (filteredSet.containsAll(sourceSets)) this + else { + val intersection = filteredSet.intersect(sourceSets) + if (intersection.isEmpty()) null + else DTypeParameter( + variantTypeParameter, + documentation.filtered(intersection), + expectPresentInSet?.takeIf { intersection.contains(expectPresentInSet) }, + bounds, + intersection, + extra + ) + } + +public fun Documentable.isExtension(): Boolean = this is Callable && receiver != null diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt new file mode 100644 index 00000000..f1193070 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/extraModifiers.kt @@ -0,0 +1,68 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +public sealed class ExtraModifiers(public val name: String) { + + public sealed class KotlinOnlyModifiers(name: String) : ExtraModifiers(name) { + public object Inline : KotlinOnlyModifiers("inline") + public object Value : KotlinOnlyModifiers("value") + public object Infix : KotlinOnlyModifiers("infix") + public object External : KotlinOnlyModifiers("external") + public object Suspend : KotlinOnlyModifiers("suspend") + public object Reified : KotlinOnlyModifiers("reified") + public object CrossInline : KotlinOnlyModifiers("crossinline") + public object NoInline : KotlinOnlyModifiers("noinline") + public object Override : KotlinOnlyModifiers("override") + public object Data : KotlinOnlyModifiers("data") + public object Const : KotlinOnlyModifiers("const") + public object Inner : KotlinOnlyModifiers("inner") + public object LateInit : KotlinOnlyModifiers("lateinit") + public object Operator : KotlinOnlyModifiers("operator") + public object TailRec : KotlinOnlyModifiers("tailrec") + public object VarArg : KotlinOnlyModifiers("vararg") + public object Fun : KotlinOnlyModifiers("fun") + } + + public sealed class JavaOnlyModifiers(name: String) : ExtraModifiers(name) { + public object Static : JavaOnlyModifiers("static") + public object Native : JavaOnlyModifiers("native") + public object Synchronized : JavaOnlyModifiers("synchronized") + public object StrictFP : JavaOnlyModifiers("strictfp") + public object Transient : JavaOnlyModifiers("transient") + public object Volatile : JavaOnlyModifiers("volatile") + public object Transitive : JavaOnlyModifiers("transitive") + } + + public companion object { + public fun valueOf(str: String): ExtraModifiers = when (str) { + "inline" -> KotlinOnlyModifiers.Inline + "value" -> KotlinOnlyModifiers.Value + "infix" -> KotlinOnlyModifiers.Infix + "external" -> KotlinOnlyModifiers.External + "suspend" -> KotlinOnlyModifiers.Suspend + "reified" -> KotlinOnlyModifiers.Reified + "crossinline" -> KotlinOnlyModifiers.CrossInline + "noinline" -> KotlinOnlyModifiers.NoInline + "override" -> KotlinOnlyModifiers.Override + "data" -> KotlinOnlyModifiers.Data + "const" -> KotlinOnlyModifiers.Const + "inner" -> KotlinOnlyModifiers.Inner + "lateinit" -> KotlinOnlyModifiers.LateInit + "operator" -> KotlinOnlyModifiers.Operator + "tailrec" -> KotlinOnlyModifiers.TailRec + "vararg" -> KotlinOnlyModifiers.VarArg + "static" -> JavaOnlyModifiers.Static + "native" -> JavaOnlyModifiers.Native + "synchronized" -> JavaOnlyModifiers.Synchronized + "strictfp" -> JavaOnlyModifiers.StrictFP + "transient" -> JavaOnlyModifiers.Transient + "volatile" -> JavaOnlyModifiers.Volatile + "transitive" -> JavaOnlyModifiers.Transitive + "fun" -> KotlinOnlyModifiers.Fun + else -> throw IllegalArgumentException("There is no Extra Modifier for given name $str") + } + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt new file mode 100644 index 00000000..8fd7ccd9 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/jvmName.kt @@ -0,0 +1,11 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.links.DRI + +public fun DRI.isJvmName(): Boolean = packageName == "kotlin.jvm" && classNames == "JvmName" + +public fun Annotations.Annotation.isJvmName(): Boolean = dri.isJvmName() diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt new file mode 100644 index 00000000..7f5bb2f0 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/PropertyContainer.kt @@ -0,0 +1,69 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model.properties + +public data class PropertyContainer<C : Any> internal constructor( + @PublishedApi internal val map: Map<ExtraProperty.Key<C, *>, ExtraProperty<C>> +) { + public operator fun <D : C> plus(prop: ExtraProperty<D>): PropertyContainer<D> = + PropertyContainer(map + (prop.key to prop)) + + // TODO: Add logic for caching calculated properties + public inline operator fun <reified T : Any> get(key: ExtraProperty.Key<C, T>): T? = when (val prop = map[key]) { + is T? -> prop + else -> throw ClassCastException("Property for $key stored under not matching key type.") + } + + public inline fun <reified T : Any> allOfType(): List<T> = map.values.filterIsInstance<T>() + + public fun <D : C> addAll(extras: Collection<ExtraProperty<D>>): PropertyContainer<D> = + PropertyContainer(map + extras.map { p -> p.key to p }) + + public operator fun <D : C> minus(prop: ExtraProperty.Key<C, *>): PropertyContainer<D> = + PropertyContainer(map.filterNot { it.key == prop }) + + public companion object { + public fun <T : Any> empty(): PropertyContainer<T> = PropertyContainer(emptyMap()) + public fun <T : Any> withAll(vararg extras: ExtraProperty<T>?): PropertyContainer<T> = empty<T>().addAll(extras.filterNotNull()) + public fun <T : Any> withAll(extras: Collection<ExtraProperty<T>>): PropertyContainer<T> = empty<T>().addAll(extras) + } +} + +public operator fun <D: Any> PropertyContainer<D>.plus(prop: ExtraProperty<D>?): PropertyContainer<D> = + if (prop == null) this else PropertyContainer(map + (prop.key to prop)) + + +public interface WithExtraProperties<C : Any> { + public val extra: PropertyContainer<C> + + public fun withNewExtras(newExtras: PropertyContainer<C>): C +} + +public fun <C> C.mergeExtras(left: C, right: C): C where C : Any, C : WithExtraProperties<C> { + val aggregatedExtras: List<List<ExtraProperty<C>>> = + (left.extra.map.values + right.extra.map.values) + .groupBy { it.key } + .values + .map { it.distinct() } + + val (unambiguous, toMerge) = aggregatedExtras.partition { it.size == 1 } + + @Suppress("UNCHECKED_CAST") + val strategies: List<MergeStrategy<C>> = toMerge.map { (l, r) -> + (l.key as ExtraProperty.Key<C, ExtraProperty<C>>).mergeStrategyFor(l, r) + } + + strategies.filterIsInstance<MergeStrategy.Fail>().firstOrNull()?.error?.invoke() + + val replaces: List<ExtraProperty<C>> = + strategies.filterIsInstance<MergeStrategy.Replace<C>>().map { it.newProperty } + + val needingFullMerge: List<(preMerged: C, left: C, right: C) -> C> = + strategies.filterIsInstance<MergeStrategy.Full<C>>().map { it.merger } + + val newExtras = PropertyContainer((unambiguous.flatten() + replaces).associateBy { it.key }) + + return needingFullMerge.fold(withNewExtras(newExtras)) { acc, merger -> merger(acc, left, right) } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt new file mode 100644 index 00000000..ea76dc72 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/model/properties/properties.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.model.properties + +public interface ExtraProperty<in C : Any> { + public interface Key<in C : Any, T : Any> { + public fun mergeStrategyFor(left: T, right: T): MergeStrategy<C> = MergeStrategy.Fail { + throw NotImplementedError("Property merging for $this is not implemented") + } + } + + public val key: Key<C, *> +} + +public interface CalculatedProperty<in C : Any, T : Any> : ExtraProperty.Key<C, T> { + public fun calculate(subject: C): T +} + +public sealed class MergeStrategy<in C> { + + public class Replace<in C : Any>( + public val newProperty: ExtraProperty<C> + ) : MergeStrategy<C>() + + public object Remove : MergeStrategy<Any>() + + public class Full<C : Any>( + public val merger: (preMerged: C, left: C, right: C) -> C + ) : MergeStrategy<C>() + + public class Fail( + public val error: () -> Nothing + ) : MergeStrategy<Any>() +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt new file mode 100644 index 00000000..96f43205 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt @@ -0,0 +1,436 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.pages + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.DisplaySourceSet +import org.jetbrains.dokka.model.WithChildren +import org.jetbrains.dokka.model.properties.PropertyContainer +import org.jetbrains.dokka.model.properties.WithExtraProperties + +public data class DCI(val dri: Set<DRI>, val kind: Kind) { + override fun toString(): String = "$dri[$kind]" +} + +public interface ContentNode : WithExtraProperties<ContentNode>, WithChildren<ContentNode> { + public val dci: DCI + public val sourceSets: Set<DisplaySourceSet> + public val style: Set<Style> + + public fun hasAnyContent(): Boolean + + public fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentNode + + override val children: List<ContentNode> + get() = emptyList() +} + +/** Simple text */ +public data class ContentText( + val text: String, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style> = emptySet(), + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentNode { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentText = copy(extra = newExtras) + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentText = copy(sourceSets = sourceSets) + override fun hasAnyContent(): Boolean = text.isNotBlank() +} + +public data class ContentBreakLine( + override val sourceSets: Set<DisplaySourceSet>, + override val dci: DCI = DCI(emptySet(), ContentKind.Empty), + override val style: Set<Style> = emptySet(), + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentNode { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentBreakLine = copy(extra = newExtras) + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentBreakLine = copy(sourceSets = sourceSets) + override fun hasAnyContent(): Boolean = true +} + +/** Headers */ +public data class ContentHeader( + override val children: List<ContentNode>, + val level: Int, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentComposite { + public constructor(level: Int, c: ContentComposite) : this(c.children, level, c.dci, c.sourceSets, c.style, c.extra) + + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentHeader = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentHeader = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentHeader = + copy(sourceSets = sourceSets) +} + +public interface ContentCode : ContentComposite + +/** Code blocks */ +public data class ContentCodeBlock( + override val children: List<ContentNode>, + val language: String, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentCode { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentCodeBlock = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentCodeBlock = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentCodeBlock = + copy(sourceSets = sourceSets) + +} + +public data class ContentCodeInline( + override val children: List<ContentNode>, + val language: String, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentCode { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentCodeInline = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentCodeInline = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentCodeInline = + copy(sourceSets = sourceSets) + +} + +/** Union type replacement */ +public interface ContentLink : ContentComposite + +/** All links to classes, packages, etc. that have te be resolved */ +public data class ContentDRILink( + override val children: List<ContentNode>, + val address: DRI, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style> = emptySet(), + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentLink { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentDRILink = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentDRILink = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentDRILink = + copy(sourceSets = sourceSets) + +} + +/** All links that do not need to be resolved */ +public data class ContentResolvedLink( + override val children: List<ContentNode>, + val address: String, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style> = emptySet(), + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentLink { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentResolvedLink = + copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentResolvedLink = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentResolvedLink = + copy(sourceSets = sourceSets) +} + +/** Embedded resources like images */ +public data class ContentEmbeddedResource( + override val children: List<ContentNode> = emptyList(), + val address: String, + val altText: String?, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style> = emptySet(), + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentLink { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentEmbeddedResource = + copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentEmbeddedResource = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentEmbeddedResource = + copy(sourceSets = sourceSets) +} + +/** Logical grouping of [ContentNode]s */ +public interface ContentComposite : ContentNode { + override val children: List<ContentNode> // overwrite to make it abstract once again + + override val sourceSets: Set<DisplaySourceSet> get() = children.flatMap { it.sourceSets }.toSet() + + public fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentComposite + + override fun hasAnyContent(): Boolean = children.any { it.hasAnyContent() } +} + +/** Tables */ +public data class ContentTable( + val header: List<ContentGroup>, + val caption: ContentGroup? = null, + override val children: List<ContentGroup>, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentComposite { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentTable = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentTable = + copy(children = children.map(transformer).map { it as ContentGroup }) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentTable = + copy(sourceSets = sourceSets) + +} + +/** Lists */ +public data class ContentList( + override val children: List<ContentNode>, + val ordered: Boolean, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentComposite { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentList = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentList = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentList = + copy(sourceSets = sourceSets) +} + +/** Default group, eg. for blocks of Functions, Properties, etc. **/ +public data class ContentGroup( + override val children: List<ContentNode>, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentComposite { + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentGroup = copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentGroup = + copy(children = children.map(transformer)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentGroup = + copy(sourceSets = sourceSets) +} + +/** + * @property groupID is used for finding and copying [ContentDivergentInstance]s when merging [ContentPage]s + */ +public data class ContentDivergentGroup( + override val children: List<ContentDivergentInstance>, + override val dci: DCI, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode>, + val groupID: GroupID, + val implicitlySourceSetHinted: Boolean = true +) : ContentComposite { + public data class GroupID(val name: String) + + override val sourceSets: Set<DisplaySourceSet> + get() = children.flatMap { it.sourceSets }.distinct().toSet() + + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentDivergentGroup = + copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentDivergentGroup = + copy(children = children.map(transformer).map { it as ContentDivergentInstance }) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentDivergentGroup = this +} + +/** Instance of a divergent content */ +public data class ContentDivergentInstance( + val before: ContentNode?, + val divergent: ContentNode, + val after: ContentNode?, + override val dci: DCI, + override val sourceSets: Set<DisplaySourceSet>, + override val style: Set<Style>, + override val extra: PropertyContainer<ContentNode> = PropertyContainer.empty() +) : ContentComposite { + override val children: List<ContentNode> + get() = listOfNotNull(before, divergent, after) + + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentDivergentInstance = + copy(extra = newExtras) + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): ContentDivergentInstance = + copy( + before = before?.let(transformer), + divergent = divergent.let(transformer), + after = after?.let(transformer) + ) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): ContentDivergentInstance = + copy(sourceSets = sourceSets) + +} + +public data class PlatformHintedContent( + val inner: ContentNode, + override val sourceSets: Set<DisplaySourceSet> +) : ContentComposite { + override val children: List<ContentNode> = listOf(inner) + + override val dci: DCI + get() = inner.dci + + override val extra: PropertyContainer<ContentNode> + get() = inner.extra + + override val style: Set<Style> + get() = inner.style + + override fun withNewExtras(newExtras: PropertyContainer<ContentNode>): ContentNode = + throw UnsupportedOperationException("This method should not be called on this PlatformHintedContent") + + override fun transformChildren(transformer: (ContentNode) -> ContentNode): PlatformHintedContent = + copy(inner = transformer(inner)) + + override fun withSourceSets(sourceSets: Set<DisplaySourceSet>): PlatformHintedContent = + copy(sourceSets = sourceSets) + +} + +public interface Style +public interface Kind + +/** + * [ContentKind] represents a grouping of content of one kind that can can be rendered + * as part of a composite page (one tab/block within a class's page, for instance). + */ +public enum class ContentKind : Kind { + + /** + * Marks all sorts of signatures. Can contain sub-kinds marked as [SymbolContentKind] + * + * Some examples: + * - primary constructor: `data class CoroutineName(name: String) : AbstractCoroutineContextElement` + * - constructor: `fun CoroutineName(name: String)` + * - function: `open override fun toString(): String` + * - property: `val name: String` + */ + Symbol, + + Comment, Constructors, Functions, Parameters, Properties, Classlikes, Packages, Sample, Main, BriefComment, + Empty, Source, TypeAliases, Cover, Inheritors, SourceSetDependentHint, Extensions, Annotations, + + /** + * Deprecation details block with related information such as message/replaceWith/level. + */ + Deprecation; + + public companion object { + private val platformTagged = + setOf( + Constructors, + Functions, + Properties, + Classlikes, + Packages, + Source, + TypeAliases, + Inheritors, + Extensions + ) + + public fun shouldBePlatformTagged(kind: Kind): Boolean = kind in platformTagged + } +} + +/** + * Content kind for [ContentKind.Symbol] content, which is essentially about signatures + */ +public enum class SymbolContentKind : Kind { + /** + * Marks constructor/function parameters, everything in-between parentheses. + * + * For function `fun foo(bar: String, baz: Int, qux: Boolean)`, + * the parameters would be the whole of `bar: String, baz: Int, qux: Boolean` + */ + Parameters, + + /** + * Marks a single parameter in a function. Most likely to be a child of [Parameters]. + * + * In function `fun foo(bar: String, baz: Int, qux: Boolean)` there would be 3 [Parameter] instances: + * - `bar: String, ` + * - `baz: Int, ` + * - `qux: Boolean` + */ + Parameter, +} + +public enum class TokenStyle : Style { + Keyword, Punctuation, Function, Operator, Annotation, Number, String, Boolean, Constant +} + +public enum class TextStyle : Style { + Bold, Italic, Strong, Strikethrough, Paragraph, + Block, Span, Monospace, Indented, Cover, UnderCoverText, BreakableAfter, Breakable, InlineComment, Quotation, + FloatingRight, Var, Underlined +} + +public enum class ContentStyle : Style { + RowTitle, + /** + * The style is used only for HTML. It is applied only for [ContentGroup]. + * Creating and rendering tabs is a part of a renderer. + */ + TabbedContent, + + WithExtraAttributes, RunnableSample, InDocumentationAnchor, Caption, + Wrapped, Indented, KDocTag, Footnote +} + +public enum class ListStyle : Style { + /** + * Represents a list of groups of [DescriptionTerm] and [DescriptionDetails]. + * Common uses for this element are to implement a glossary or to display + * metadata (a list of key-value pairs). Formatting example: see `<dl>` html tag. + */ + DescriptionList, + + /** + * If used within [DescriptionList] context, specifies a term in a description + * or definition list, usually followed by [DescriptionDetails] for one or more + * terms. Formatting example: see `<dt>` html tag + */ + DescriptionTerm, + + /** + * If used within [DescriptionList] context, provides the definition or other + * related text associated with [DescriptionTerm]. Formatting example: see `<dd>` html tag + */ + DescriptionDetails +} + +public object CommentTable : Style + +public object MultimoduleTable : Style + +public fun ContentNode.hasStyle(style: Style): Boolean = this.style.contains(style) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt new file mode 100644 index 00000000..cfaf2347 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/PageNodes.kt @@ -0,0 +1,200 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.pages + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.Documentable +import org.jetbrains.dokka.model.WithChildren +import java.util.* + +public interface PageNode : WithChildren<PageNode> { + public val name: String + override val children: List<PageNode> + + public fun modified( + name: String = this.name, + children: List<PageNode> = this.children + ): PageNode +} + +public interface ContentPage : PageNode { + public val content: ContentNode + public val dri: Set<DRI> + public val embeddedResources: List<String> + + @Deprecated("Deprecated. Remove its usages from your code.", + ReplaceWith("this.documentables.firstOrNull()") + ) + public val documentable: Documentable? + get() = if (this is WithDocumentables) this.documentables.firstOrNull() else null + + public fun modified( + name: String = this.name, + content: ContentNode = this.content, + dri: Set<DRI> = this.dri, + embeddedResources: List<String> = this.embeddedResources, + children: List<PageNode> = this.children + ): ContentPage +} + +public interface WithDocumentables { + public val documentables: List<Documentable> +} + +public abstract class RootPageNode( + public val forceTopLevelName: Boolean = false +) : PageNode { + public val parentMap: Map<PageNode, PageNode> by lazy { + IdentityHashMap<PageNode, PageNode>().apply { + fun process(parent: PageNode) { + parent.children.forEach { child -> + put(child, parent) + process(child) + } + } + process(this@RootPageNode) + } + } + + public fun transformPageNodeTree(operation: (PageNode) -> PageNode): RootPageNode = + this.transformNode(operation) as RootPageNode + + public fun transformContentPagesTree(operation: (ContentPage) -> ContentPage): RootPageNode = transformPageNodeTree { + if (it is ContentPage) operation(it) else it + } + + private fun PageNode.transformNode(operation: (PageNode) -> PageNode): PageNode = + operation(this).let { newNode -> + newNode.modified(children = newNode.children.map { it.transformNode(operation) }) + } + + abstract override fun modified( + name: String, + children: List<PageNode> + ): RootPageNode +} + +public class ModulePageNode( + override val name: String, + override val content: ContentNode, + override val documentables: List<Documentable> = listOf(), + override val children: List<PageNode>, + override val embeddedResources: List<String> = listOf() +) : RootPageNode(), ModulePage { + override val dri: Set<DRI> = setOf(DRI.topLevel) + + override fun modified(name: String, children: List<PageNode>): ModulePageNode = + modified(name = name, content = this.content, dri = dri, children = children) + + override fun modified( + name: String, + content: ContentNode, + dri: Set<DRI>, + embeddedResources: List<String>, + children: List<PageNode> + ): ModulePageNode = + if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this + else ModulePageNode(name, content, documentables, children, embeddedResources) +} + +public class PackagePageNode( + override val name: String, + override val content: ContentNode, + override val dri: Set<DRI>, + override val documentables: List<Documentable> = listOf(), + override val children: List<PageNode>, + override val embeddedResources: List<String> = listOf() +) : PackagePage { + + init { + require(name.isNotBlank()) { "PackagePageNode.name cannot be blank" } + } + + override fun modified(name: String, children: List<PageNode>): PackagePageNode = + modified(name = name, content = this.content, children = children) + + override fun modified( + name: String, + content: ContentNode, + dri: Set<DRI>, + embeddedResources: List<String>, + children: List<PageNode> + ): PackagePageNode = + if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this + else PackagePageNode(name, content, dri, documentables, children, embeddedResources) +} + +public class ClasslikePageNode( + override val name: String, + override val content: ContentNode, + override val dri: Set<DRI>, + override val documentables: List<Documentable> = listOf(), + override val children: List<PageNode>, + override val embeddedResources: List<String> = listOf() +) : ClasslikePage { + override fun modified(name: String, children: List<PageNode>): ClasslikePageNode = + modified(name = name, content = this.content, children = children) + + override fun modified( + name: String, + content: ContentNode, + dri: Set<DRI>, + embeddedResources: List<String>, + children: List<PageNode> + ): ClasslikePageNode = + if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this + else ClasslikePageNode(name, content, dri, documentables, children, embeddedResources) +} + +public class MemberPageNode( + override val name: String, + override val content: ContentNode, + override val dri: Set<DRI>, + override val documentables: List<Documentable> = listOf(), + override val children: List<PageNode> = emptyList(), + override val embeddedResources: List<String> = listOf() +) : MemberPage { + override fun modified(name: String, children: List<PageNode>): MemberPageNode = + modified(name = name, content = this.content, children = children) + + override fun modified( + name: String, + content: ContentNode, + dri: Set<DRI>, + embeddedResources: List<String>, + children: List<PageNode> + ): MemberPageNode = + if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this + else MemberPageNode(name, content, dri, documentables, children, embeddedResources) +} + + +public class MultimoduleRootPageNode( + override val dri: Set<DRI>, + override val content: ContentNode, + override val embeddedResources: List<String> = emptyList() +) : RootPageNode(forceTopLevelName = true), MultimoduleRootPage { + override val name: String = "All modules" + + override val children: List<PageNode> = emptyList() + + override fun modified(name: String, children: List<PageNode>): RootPageNode = + MultimoduleRootPageNode(dri, content, embeddedResources) + + override fun modified( + name: String, + content: ContentNode, + dri: Set<DRI>, + embeddedResources: List<String>, + children: List<PageNode> + ): ContentPage = + if (name == this.name && content === this.content && embeddedResources === this.embeddedResources && children shallowEq this.children) this + else MultimoduleRootPageNode(dri, content, embeddedResources) +} + +public inline fun <reified T : PageNode> PageNode.children(): List<T> = children.filterIsInstance<T>() + +private infix fun <T> List<T>.shallowEq(other: List<T>) = + this === other || (this.size == other.size && (this zip other).all { (a, b) -> a === b }) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt new file mode 100644 index 00000000..0bf225c9 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/Pages.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.pages + +public interface MultimoduleRootPage : ContentPage + +public interface ModulePage : ContentPage, WithDocumentables + +public interface PackagePage : ContentPage, WithDocumentables + +public interface ClasslikePage : ContentPage, WithDocumentables + +public interface MemberPage : ContentPage, WithDocumentables diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt new file mode 100644 index 00000000..701886b7 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/RendererSpecificPage.kt @@ -0,0 +1,52 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.pages + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.DisplaySourceSet +import org.jetbrains.dokka.renderers.Renderer +import kotlin.reflect.KClass + +public fun interface DriResolver: (DRI, Set<DisplaySourceSet>) -> String? +public fun interface PageResolver: (PageNode, PageNode?) -> String? + +public interface RendererSpecificPage : PageNode { + public val strategy: RenderingStrategy +} + +public class RendererSpecificRootPage( + override val name: String, + override val children: List<PageNode>, + override val strategy: RenderingStrategy +) : RootPageNode(), RendererSpecificPage { + override fun modified(name: String, children: List<PageNode>): RendererSpecificRootPage = + RendererSpecificRootPage(name, children, strategy) +} + +public class RendererSpecificResourcePage( + override val name: String, + override val children: List<PageNode>, + override val strategy: RenderingStrategy +): RendererSpecificPage { + override fun modified(name: String, children: List<PageNode>): RendererSpecificResourcePage = + RendererSpecificResourcePage(name, children, strategy) +} + +public sealed class RenderingStrategy { + public class Callback(public val instructions: Renderer.(PageNode) -> String): RenderingStrategy() + public data class Copy(val from: String) : RenderingStrategy() + public data class Write(val text: String) : RenderingStrategy() + public data class DriLocationResolvableWrite(val contentToResolve: (DriResolver) -> String) : RenderingStrategy() + public data class PageLocationResolvableWrite(val contentToResolve: (PageResolver) -> String) : RenderingStrategy() + public object DoNothing : RenderingStrategy() + + public companion object { + public inline operator fun <reified T: Renderer> invoke(crossinline instructions: T.(PageNode) -> String): RenderingStrategy { + return Callback { if (this is T) instructions(it) else throw WrongRendererTypeException(T::class) } + } + } +} + +public data class WrongRendererTypeException(val expectedType: KClass<*>): Exception() diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt new file mode 100644 index 00000000..64f19572 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/contentNodeProperties.kt @@ -0,0 +1,37 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.pages + +import org.jetbrains.dokka.model.properties.ExtraProperty + +public class SimpleAttr( + public val extraKey: String, + public val extraValue: String +) : ExtraProperty<ContentNode> { + public data class SimpleAttrKey(val key: String) : ExtraProperty.Key<ContentNode, SimpleAttr> + override val key: ExtraProperty.Key<ContentNode, SimpleAttr> = SimpleAttrKey(extraKey) + +} + +public enum class BasicTabbedContentType : TabbedContentType { + TYPE, CONSTRUCTOR, FUNCTION, PROPERTY, ENTRY, EXTENSION_PROPERTY, EXTENSION_FUNCTION +} + +/** + * It is used only to mark content for tabs in HTML format + */ +public interface TabbedContentType + +/** + * @see TabbedContentType + */ +public class TabbedContentTypeExtra(public val value: TabbedContentType) : ExtraProperty<ContentNode> { + public companion object : ExtraProperty.Key<ContentNode, TabbedContentTypeExtra> + override val key: ExtraProperty.Key<ContentNode, TabbedContentTypeExtra> = TabbedContentTypeExtra +} + +public object HtmlContent : ExtraProperty<ContentNode>, ExtraProperty.Key<ContentNode, HtmlContent> { + override val key: ExtraProperty.Key<ContentNode, *> = this +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt new file mode 100644 index 00000000..6c416e24 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/utils.kt @@ -0,0 +1,63 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.pages + +import kotlin.reflect.KClass + +public inline fun <reified T : ContentNode, R : ContentNode> R.mapTransform(noinline operation: (T) -> T): R = + mapTransform(T::class, operation) + +public inline fun <reified T : ContentNode, R : ContentNode> R.recursiveMapTransform(noinline operation: (T) -> T): R = + recursiveMapTransform(T::class, operation) + +@PublishedApi +@Suppress("UNCHECKED_CAST") +internal fun <T : ContentNode, R : ContentNode> R.mapTransform(type: KClass<T>, operation: (T) -> T): R { + if (this::class == type) { + return operation(this as T) as R + } + val new = when (this) { + is ContentGroup -> copy(children = children.map { it.mapTransform(type, operation) }) + is ContentHeader -> copy(children = children.map { it.mapTransform(type, operation) }) + is ContentCodeBlock -> copy(children = children.map { it.mapTransform(type, operation) }) + is ContentCodeInline -> copy(children = children.map { it.mapTransform(type, operation) }) + is ContentTable -> copy(header = header.map { it.recursiveMapTransform(type, operation) }, children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentList -> copy(children = children.map { it.mapTransform(type, operation) }) + is ContentDivergentGroup -> copy(children = children.map { it.mapTransform(type, operation) }) + is ContentDivergentInstance -> copy( + before = before?.mapTransform(type, operation), + divergent = divergent.mapTransform(type, operation), + after = after?.mapTransform(type, operation) + ) + is PlatformHintedContent -> copy(inner = inner.mapTransform(type, operation)) + else -> this + } + return new as R +} + +@PublishedApi +@Suppress("UNCHECKED_CAST") +internal fun <T : ContentNode, R : ContentNode> R.recursiveMapTransform(type: KClass<T>, operation: (T) -> T): R { + val new = when (this) { + is ContentGroup -> copy(children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentHeader -> copy(children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentCodeBlock -> copy(children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentCodeInline -> copy(children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentTable -> copy(header = header.map { it.recursiveMapTransform(type, operation) }, children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentList -> copy(children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentDivergentGroup -> copy(children = children.map { it.recursiveMapTransform(type, operation) }) + is ContentDivergentInstance -> copy( + before = before?.recursiveMapTransform(type, operation), + divergent = divergent.recursiveMapTransform(type, operation), + after = after?.recursiveMapTransform(type, operation) + ) + is PlatformHintedContent -> copy(inner = inner.recursiveMapTransform(type, operation)) + else -> this + } + if (new::class == type) { + return operation(new as T) as R + } + return new as R +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt new file mode 100644 index 00000000..1287e58b --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaContext.kt @@ -0,0 +1,235 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.plugability + +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.utilities.DokkaLogger +import java.io.File +import java.net.URLClassLoader +import java.util.* +import kotlin.reflect.KClass +import kotlin.reflect.full.createInstance + +public interface DokkaContext { + public fun <T : DokkaPlugin> plugin(kclass: KClass<T>): T? + + public operator fun <T, E> get(point: E): List<T> + where T : Any, E : ExtensionPoint<T> + + public fun <T, E> single(point: E): T where T : Any, E : ExtensionPoint<T> + + public val logger: DokkaLogger + public val configuration: DokkaConfiguration + public val unusedPoints: Collection<ExtensionPoint<*>> + + public companion object { + public fun create( + configuration: DokkaConfiguration, + logger: DokkaLogger, + pluginOverrides: List<DokkaPlugin> + ): DokkaContext = + DokkaContextConfigurationImpl(logger, configuration).apply { + // File(it.path) is a workaround for an incorrect filesystem in a File instance returned by Gradle. + configuration.pluginsClasspath.map { File(it.path).toURI().toURL() } + .toTypedArray() + .let { URLClassLoader(it, this.javaClass.classLoader) } + .also { checkClasspath(it) } + .let { ServiceLoader.load(DokkaPlugin::class.java, it) } + .let { it + pluginOverrides } + .forEach { install(it) } + topologicallySortAndPrune() + }.also { it.logInitialisationInfo() } + } +} + +public inline fun <reified T : DokkaPlugin> DokkaContext.plugin(): T = plugin(T::class) + ?: throw java.lang.IllegalStateException("Plugin ${T::class.qualifiedName} is not present in context.") + +public fun interface DokkaContextConfiguration { + public fun installExtension(extension: Extension<*, *, *>) +} + +private class DokkaContextConfigurationImpl( + override val logger: DokkaLogger, + override val configuration: DokkaConfiguration +) : DokkaContext, DokkaContextConfiguration { + private val plugins = mutableMapOf<KClass<*>, DokkaPlugin>() + private val pluginStubs = mutableMapOf<KClass<*>, DokkaPlugin>() + val extensions = mutableMapOf<ExtensionPoint<*>, MutableList<Extension<*, *, *>>>() + val pointsUsed: MutableSet<ExtensionPoint<*>> = mutableSetOf() + val pointsPopulated: MutableSet<ExtensionPoint<*>> = mutableSetOf() + override val unusedPoints: Set<ExtensionPoint<*>> + get() = pointsPopulated - pointsUsed + + private enum class State { + UNVISITED, + VISITING, + VISITED; + } + + private sealed class Suppression { + data class ByExtension(val extension: Extension<*, *, *>) : Suppression() { + override fun toString() = extension.toString() + } + + data class ByPlugin(val plugin: DokkaPlugin) : Suppression() { + override fun toString() = "Plugin ${plugin::class.qualifiedName}" + } + } + + private val rawExtensions = mutableListOf<Extension<*, *, *>>() + private val rawAdjacencyList = mutableMapOf<Extension<*, *, *>, MutableList<Extension<*, *, *>>>() + private val suppressedExtensions = mutableMapOf<Extension<*, *, *>, MutableList<Suppression>>() + + fun topologicallySortAndPrune() { + pointsPopulated.clear() + extensions.clear() + + val overridesInfo = processOverrides() + val extensionsToSort = overridesInfo.keys + val adjacencyList = translateAdjacencyList(overridesInfo) + + val verticesWithState = extensionsToSort.associateWithTo(mutableMapOf()) { State.UNVISITED } + val result: MutableList<Extension<*, *, *>> = mutableListOf() + + fun visit(n: Extension<*, *, *>) { + val state = verticesWithState[n] + if (state == State.VISITED) + return + if (state == State.VISITING) + throw Error("Detected cycle in plugins graph") + verticesWithState[n] = State.VISITING + adjacencyList[n]?.forEach { visit(it) } + verticesWithState[n] = State.VISITED + result += n + } + + extensionsToSort.forEach(::visit) + + val filteredResult = result.asReversed().filterNot { it in suppressedExtensions } + + filteredResult.mapTo(pointsPopulated) { it.extensionPoint } + filteredResult.groupByTo(extensions) { it.extensionPoint } + } + + private fun processOverrides(): Map<Extension<*, *, *>, Set<Extension<*, *, *>>> { + val buckets = rawExtensions.associateWithTo(mutableMapOf()) { setOf(it) } + suppressedExtensions.forEach { (extension, suppressions) -> + val mergedBucket = suppressions.filterIsInstance<Suppression.ByExtension>() + .map { it.extension } + .plus(extension) + .flatMap { buckets[it].orEmpty() } + .toSet() + mergedBucket.forEach { buckets[it] = mergedBucket } + } + return buckets.values.distinct().associateBy(::findNotOverridden) + } + + private fun findNotOverridden(bucket: Set<Extension<*, *, *>>): Extension<*, *, *> { + // Let's filter out all suppressedExtensions that are not only overrides. + // suppressedExtensions can be polluted by suppressions that completely disables the extension, and would break dokka behaviour + // if not filtered out + val suppressedExtensionsByOverrides = suppressedExtensions.filterNot { it.value.any { it !is Suppression.ByExtension } } + val filtered = bucket.filterNot { it in suppressedExtensionsByOverrides } + return filtered.singleOrNull() + ?: throw IllegalStateException("Conflicting overrides: $filtered") + } + + private fun translateAdjacencyList( + overridesInfo: Map<Extension<*, *, *>, Set<Extension<*, *, *>>> + ): Map<Extension<*, *, *>, List<Extension<*, *, *>>> { + val reverseOverrideInfo = overridesInfo.flatMap { (ext, set) -> set.map { it to ext } }.toMap() + return rawAdjacencyList.mapNotNull { (ext, list) -> + reverseOverrideInfo[ext]?.to(list.mapNotNull { reverseOverrideInfo[it] }) + }.toMap() + } + + @Suppress("UNCHECKED_CAST") + override operator fun <T, E> get(point: E) where T : Any, E : ExtensionPoint<T> = + actions(point).also { pointsUsed += point }.orEmpty() as List<T> + + @Suppress("UNCHECKED_CAST") + override fun <T, E> single(point: E): T where T : Any, E : ExtensionPoint<T> { + fun throwBadArity(substitution: String): Nothing = throw IllegalStateException( + "$point was expected to have exactly one extension registered, but $substitution found." + ) + pointsUsed += point + + val extensions = extensions[point].orEmpty() as List<Extension<T, *, *>> + return when (extensions.size) { + 0 -> throwBadArity("none was") + 1 -> extensions.single().action.get(this) + else -> throwBadArity("many were") + } + } + + private fun <E : ExtensionPoint<*>> actions(point: E) = extensions[point]?.map { it.action.get(this) } + + @Suppress("UNCHECKED_CAST") + override fun <T : DokkaPlugin> plugin(kclass: KClass<T>) = (plugins[kclass] ?: pluginStubFor(kclass)) as T + + private fun <T : DokkaPlugin> pluginStubFor(kclass: KClass<T>): DokkaPlugin = + pluginStubs.getOrPut(kclass) { kclass.createInstance().also { it.context = this } } + + fun install(plugin: DokkaPlugin) { + plugins[plugin::class] = plugin + plugin.context = this + plugin.internalInstall(this, this.configuration) + + if (plugin is WithUnsafeExtensionSuppression) { + plugin.extensionsSuppressed.forEach { + suppressedExtensions.listFor(it) += Suppression.ByPlugin(plugin) + } + } + } + + override fun installExtension(extension: Extension<*, *, *>) { + rawExtensions += extension + + if (extension.ordering is OrderingKind.ByDsl) { + val orderDsl = OrderDsl() + orderDsl.(extension.ordering.block)() + + rawAdjacencyList.listFor(extension) += orderDsl.following.toList() + orderDsl.previous.forEach { rawAdjacencyList.listFor(it) += extension } + } + + if (extension.override is OverrideKind.Present) { + fun root(ext: Extension<*, *, *>): List<Extension<*, *, *>> = if (ext.override is OverrideKind.Present) ext.override.overriden.flatMap(::root) else listOf(ext) + if (extension.override.overriden.size > 1 && root(extension).distinct().size > 1) + throw IllegalStateException("Extension $extension overrides extensions without common root") + extension.override.overriden.forEach { overriden -> + suppressedExtensions.listFor(overriden) += Suppression.ByExtension(extension) + } + } + } + + fun logInitialisationInfo() { + val pluginNames = plugins.values.map { it::class.qualifiedName.toString() } + + val loadedListForDebug = extensions.run { keys + values.flatten() }.toList() + .joinToString(prefix = "[\n", separator = ",\n", postfix = "\n]") { "\t$it" } + + val suppressedList = suppressedExtensions.asSequence() + .joinToString(prefix = "[\n", separator = ",\n", postfix = "\n]") { + "\t${it.key} by " + (it.value.singleOrNull() ?: it.value) + } + + logger.info("Loaded plugins: $pluginNames") + logger.info("Loaded: $loadedListForDebug") + logger.info("Suppressed: $suppressedList") + } +} + +private fun checkClasspath(classLoader: URLClassLoader) { + classLoader.findResource(DokkaContext::class.java.name.replace('.', '/') + ".class")?.also { + throw AssertionError( + "Dokka API found on plugins classpath. This will lead to subtle bugs. " + + "Please fix your plugins dependencies or exclude dokka api artifact from plugin classpath" + ) + } +} + +private fun <K, V> MutableMap<K, MutableList<V>>.listFor(key: K) = getOrPut(key, ::mutableListOf) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt new file mode 100644 index 00000000..3c2f5e65 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaJavaPlugin.kt @@ -0,0 +1,78 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.plugability + +import org.jetbrains.dokka.DokkaConfiguration + +public class ExtensionBuilderStart internal constructor(){ + public fun <T: Any> extensionPoint(ext: ExtensionPoint<T>): ProvidedExtension<T> = ProvidedExtension(ext) +} + +public class ProvidedExtension<T: Any> internal constructor( + public val ext: ExtensionPoint<T> +) { + public fun fromInstance(inst: T): ExtensionBuilder<T> = createBuilder( + LazyEvaluated.fromInstance( + inst + ) + ) + public fun fromRecipe(recipe: (DokkaContext) -> T): ExtensionBuilder<T> = createBuilder( + LazyEvaluated.fromRecipe(recipe) + ) + + private val defaultName = "${ext.pointName}/in/${javaClass.simpleName}" + + private fun createBuilder(action: LazyEvaluated<T>) = + ExtensionBuilder(defaultName, ext, action, + emptyList(), emptyList(), + OverrideKind.None, emptyList()) +} + +public data class ExtensionBuilder<T: Any> internal constructor( + private val name: String, + private val ext: ExtensionPoint<T>, + private val action: LazyEvaluated<T>, + private val before: List<Extension<*, *, *>>, + private val after: List<Extension<*, *, *>>, + private val override: OverrideKind = OverrideKind.None, + private val conditions: List<(DokkaConfiguration) -> Boolean> +){ + public fun build(): Extension<T, *, *> = Extension( + ext, + javaClass.name, + name, + action, + OrderingKind.ByDsl { + before(*before.toTypedArray()) + after(*after.toTypedArray()) + }, + override, + conditions + ) + + public fun overrideExtension(extension: Extension<T, *, *>): ExtensionBuilder<T> = copy(override = OverrideKind.Present(listOf(extension))) + + public fun newOrdering(before: Array<out Extension<*, *, *>>, after: Array<out Extension<*, *, *>>): ExtensionBuilder<T> = + copy(before = this.before + before, after = this.after + after) + + public fun before(vararg exts: Extension<*, *, *>): ExtensionBuilder<T> = copy(before = this.before + exts) + + public fun after(vararg exts: Extension<*, *, *>): ExtensionBuilder<T> = copy(after = this.after + exts) + + public fun addCondition(c: (DokkaConfiguration) -> Boolean): ExtensionBuilder<T> = copy(conditions = conditions + c) + + public fun name(name: String): ExtensionBuilder<T> = copy(name = name) +} + +public abstract class DokkaJavaPlugin: DokkaPlugin() { + + public fun <T: DokkaPlugin> plugin(clazz: Class<T>): T = + context?.plugin(clazz.kotlin) ?: throwIllegalQuery() + + + public fun <T: Any> extend(func: (ExtensionBuilderStart) -> ExtensionBuilder<T>): Lazy<Extension<T, *, *>> = + lazy { func(ExtensionBuilderStart()).build() }.also { unsafeInstall(it) } + +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt new file mode 100644 index 00000000..7e15c325 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/DokkaPlugin.kt @@ -0,0 +1,114 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.plugability + +import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule +import com.fasterxml.jackson.dataformat.xml.XmlMapper +import com.fasterxml.jackson.module.kotlin.readValue +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.utilities.DokkaLogger +import org.jetbrains.dokka.utilities.parseJson +import kotlin.properties.ReadOnlyProperty +import kotlin.reflect.KProperty +import kotlin.reflect.KProperty1 + +@RequiresOptIn( + level = RequiresOptIn.Level.WARNING, + message = "All of Dokka's plugin API is in preview and it can be changed " + + "in a backwards-incompatible manner with a best-effort migration. " + + "By opting in, you acknowledge the risks of relying on preview API." +) +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.FIELD) +@Retention(AnnotationRetention.BINARY) +public annotation class DokkaPluginApiPreview + +/** + * Acknowledgement for empty methods that inform users about [DokkaPluginApiPreview] + * Also, it allows to not propagates the annotation in IDE by default when a user autogenerate methods. + */ +@DokkaPluginApiPreview +public object PluginApiPreviewAcknowledgement + +public abstract class DokkaPlugin { + private val extensionDelegates = mutableListOf<KProperty<*>>() + private val unsafePlugins = mutableListOf<Lazy<Extension<*, *, *>>>() + + @PublishedApi + internal var context: DokkaContext? = null + + protected val logger: DokkaLogger get() = context?.logger ?: throw IllegalStateException("No logger found") + + /** + * @see PluginApiPreviewAcknowledgement + */ + @OptIn(DokkaPluginApiPreview::class) + protected abstract fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement + protected inline fun <reified T : DokkaPlugin> plugin(): T = context?.plugin(T::class) ?: throwIllegalQuery() + + protected fun <T : Any> extensionPoint(): ReadOnlyProperty<DokkaPlugin, ExtensionPoint<T>> { + return ReadOnlyProperty { thisRef, property -> + ExtensionPoint( + thisRef::class.qualifiedName ?: throw AssertionError("Plugin must be named class"), + property.name + ) + } + } + protected fun <T : Any> extending(definition: ExtendingDSL.() -> Extension<T, *, *>): ExtensionProvider<T> { + return ExtensionProvider(definition) + } + + protected class ExtensionProvider<T : Any> internal constructor( + private val definition: ExtendingDSL.() -> Extension<T, *, *> + ) { + public operator fun provideDelegate(thisRef: DokkaPlugin, property: KProperty<*>): Lazy<Extension<T, *, *>> { + return lazy { + ExtendingDSL( + thisRef::class.qualifiedName ?: throw AssertionError("Plugin must be named class"), + property.name + ).definition() + }.also { thisRef.extensionDelegates += property } + } + } + + internal fun internalInstall(ctx: DokkaContextConfiguration, configuration: DokkaConfiguration) { + val extensionsToInstall = extensionDelegates.asSequence() + .filterIsInstance<KProperty1<DokkaPlugin, Extension<*, *, *>>>() // should be always true + .map { it.get(this) } + unsafePlugins.map { it.value } + + extensionsToInstall.forEach { if (configuration.(it.condition)()) ctx.installExtension(it) } + } + + protected fun <T : Any> unsafeInstall(ext: Lazy<Extension<T, *, *>>) { + unsafePlugins.add(ext) + } +} + +public interface WithUnsafeExtensionSuppression { + public val extensionsSuppressed: List<Extension<*, *, *>> +} + +public interface ConfigurableBlock + +public inline fun <reified P : DokkaPlugin, reified E : Any> P.query(extension: P.() -> ExtensionPoint<E>): List<E> = + context?.let { it[extension()] } ?: throwIllegalQuery() + +public inline fun <reified P : DokkaPlugin, reified E : Any> P.querySingle(extension: P.() -> ExtensionPoint<E>): E = + context?.single(extension()) ?: throwIllegalQuery() + +public fun throwIllegalQuery(): Nothing = + throw IllegalStateException("Querying about plugins is only possible with dokka context initialised") + +public inline fun <reified T : DokkaPlugin, reified R : ConfigurableBlock> configuration(context: DokkaContext): R? = + context.configuration.pluginsConfiguration.firstOrNull { it.fqPluginName == T::class.qualifiedName } + ?.let { configuration -> + when (configuration.serializationFormat) { + DokkaConfiguration.SerializationFormat.JSON -> parseJson(configuration.values) + DokkaConfiguration.SerializationFormat.XML -> XmlMapper(JacksonXmlModule().apply { + setDefaultUseWrapper( + true + ) + }).readValue<R>(configuration.values) + } + } diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt new file mode 100644 index 00000000..46f15b17 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/LazyEvaluated.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.plugability + +internal class LazyEvaluated<T : Any> private constructor(private val recipe: ((DokkaContext) -> T)? = null, private var value: T? = null) { + + @Synchronized + internal fun get(context: DokkaContext): T { + if(value == null) { + value = recipe?.invoke(context) + } + return value ?: throw AssertionError("Incorrect initialized LazyEvaluated instance") + } + + companion object { + fun <T : Any> fromInstance(value: T) = LazyEvaluated(value = value) + fun <T : Any> fromRecipe(recipe: (DokkaContext) -> T) = LazyEvaluated(recipe = recipe) + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt new file mode 100644 index 00000000..04212d1a --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/plugability/extensions.kt @@ -0,0 +1,110 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.plugability + +import org.jetbrains.dokka.DokkaConfiguration + +public data class ExtensionPoint<T : Any> internal constructor( + internal val pluginClass: String, + internal val pointName: String +) { + override fun toString(): String = "ExtensionPoint: $pluginClass/$pointName" +} + +public sealed class OrderingKind { + public object None : OrderingKind() + + public class ByDsl( + public val block: (OrderDsl.() -> Unit) + ) : OrderingKind() +} + +public sealed class OverrideKind { + public object None : OverrideKind() + public class Present( + public val overriden: List<Extension<*, *, *>> + ) : OverrideKind() +} + +public class Extension<T : Any, Ordering : OrderingKind, Override : OverrideKind> internal constructor( + internal val extensionPoint: ExtensionPoint<T>, + internal val pluginClass: String, + internal val extensionName: String, + internal val action: LazyEvaluated<T>, + internal val ordering: Ordering, + internal val override: Override, + internal val conditions: List<DokkaConfiguration.() -> Boolean> +) { + override fun toString(): String = "Extension: $pluginClass/$extensionName" + + override fun equals(other: Any?): Boolean = + if (other is Extension<*, *, *>) this.pluginClass == other.pluginClass && this.extensionName == other.extensionName + else false + + override fun hashCode(): Int = listOf(pluginClass, extensionName).hashCode() + + public val condition: DokkaConfiguration.() -> Boolean + get() = { conditions.all { it(this) } } +} + +internal fun <T : Any> Extension( + extensionPoint: ExtensionPoint<T>, + pluginClass: String, + extensionName: String, + action: LazyEvaluated<T> +) = Extension(extensionPoint, pluginClass, extensionName, action, OrderingKind.None, OverrideKind.None, emptyList()) + +@DslMarker +public annotation class ExtensionsDsl + +@ExtensionsDsl +public class ExtendingDSL(private val pluginClass: String, private val extensionName: String) { + + public infix fun <T : Any> ExtensionPoint<T>.with(action: T): Extension<T, OrderingKind.None, OverrideKind.None> { + return Extension(this, this@ExtendingDSL.pluginClass, extensionName, LazyEvaluated.fromInstance(action)) + } + + public infix fun <T : Any> ExtensionPoint<T>.providing(action: (DokkaContext) -> T): Extension<T, OrderingKind.None, OverrideKind.None> { + return Extension(this, this@ExtendingDSL.pluginClass, extensionName, LazyEvaluated.fromRecipe(action)) + } + + public infix fun <T : Any, Override : OverrideKind> Extension<T, OrderingKind.None, Override>.order( + block: OrderDsl.() -> Unit + ): Extension<T, OrderingKind.ByDsl, Override> { + return Extension(extensionPoint, pluginClass, extensionName, action, OrderingKind.ByDsl(block), override, conditions) + } + + public infix fun <T : Any, Override : OverrideKind, Ordering: OrderingKind> Extension<T, Ordering, Override>.applyIf( + condition: DokkaConfiguration.() -> Boolean + ): Extension<T, Ordering, Override> { + return Extension(extensionPoint, pluginClass, extensionName, action, ordering, override, conditions + condition) + } + + public infix fun <T : Any, Override : OverrideKind, Ordering: OrderingKind> Extension<T, Ordering, Override>.override( + overriden: List<Extension<T, *, *>> + ): Extension<T, Ordering, OverrideKind.Present> { + return Extension(extensionPoint, pluginClass, extensionName, action, ordering, OverrideKind.Present(overriden), conditions) + } + + public infix fun <T : Any, Override : OverrideKind, Ordering: OrderingKind> Extension<T, Ordering, Override>.override( + overriden: Extension<T, *, *> + ): Extension<T, Ordering, OverrideKind.Present> { + return this.override(listOf(overriden)) + } +} + +@ExtensionsDsl +public class OrderDsl { + internal val previous = mutableSetOf<Extension<*, *, *>>() + internal val following = mutableSetOf<Extension<*, *, *>>() + + public fun after(vararg extensions: Extension<*, *, *>) { + previous += extensions + } + + public fun before(vararg extensions: Extension<*, *, *>) { + following += extensions + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt new file mode 100644 index 00000000..191a77b3 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/PostAction.kt @@ -0,0 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.renderers + +public fun interface PostAction : () -> Unit diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt new file mode 100644 index 00000000..f1583506 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/renderers/Renderer.kt @@ -0,0 +1,11 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.renderers + +import org.jetbrains.dokka.pages.RootPageNode + +public fun interface Renderer { + public fun render(root: RootPageNode) +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt new file mode 100644 index 00000000..fe1e5d64 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DefaultDocumentableMerger.kt @@ -0,0 +1,307 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.documentation + +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.InternalDokkaApi +import org.jetbrains.dokka.model.* +import org.jetbrains.dokka.model.properties.ExtraProperty +import org.jetbrains.dokka.model.properties.MergeStrategy +import org.jetbrains.dokka.model.properties.mergeExtras +import org.jetbrains.dokka.plugability.DokkaContext +import org.jetbrains.dokka.CoreExtensions + +/** + * Should NOT be used outside of Dokka itself, there are no guarantees + * this class will continue to exist in future releases. + * + * This class resides in core because it is a non-trivial implementation + * for a core extension [CoreExtensions.documentableMerger], which is needed + * in modules that only have access to `dokka-core`. + */ +@InternalDokkaApi +public class DefaultDocumentableMerger(context: DokkaContext) : DocumentableMerger { + private val dependencyInfo = context.getDependencyInfo() + + override fun invoke(modules: Collection<DModule>): DModule? = + modules.reduceOrNull { left, right -> + val list = listOf(left, right) + DModule( + name = modules.map { it.name }.distinct().joinToString("|"), + packages = merge( + list.flatMap { it.packages } + ) { pck1, pck2 -> pck1.mergeWith(pck2) }, + documentation = list.map { it.documentation }.flatMap { it.entries }.associate { (k, v) -> k to v }, + expectPresentInSet = list.firstNotNullOfOrNull { it.expectPresentInSet }, + sourceSets = list.flatMap { it.sourceSets }.toSet() + ).mergeExtras(left, right) + } + + private fun DokkaContext.getDependencyInfo() + : Map<DokkaConfiguration.DokkaSourceSet, List<DokkaConfiguration.DokkaSourceSet>> { + + fun getDependencies(sourceSet: DokkaConfiguration.DokkaSourceSet): List<DokkaConfiguration.DokkaSourceSet> = + listOf(sourceSet) + configuration.sourceSets.filter { + it.sourceSetID in sourceSet.dependentSourceSets + }.flatMap { getDependencies(it) } + + return configuration.sourceSets.associateWith { getDependencies(it) } + } + + private fun <T : Documentable> merge(elements: List<T>, reducer: (T, T) -> T): List<T> = + elements.groupingBy { it.dri } + .reduce { _, left, right -> reducer(left, right) } + .values.toList() + + private fun <T> mergeExpectActual( + elements: List<T>, + reducer: (T, T) -> T + ): List<T> where T : Documentable, T : WithSources { + + fun mergeClashingElements(elements: List<Pair<T, Set<DokkaConfiguration.DokkaSourceSet>>>): List<T> = + elements.groupBy { it.first.name }.values.flatMap { listOfDocumentableToSSIds -> + val merged = listOfDocumentableToSSIds.map { (documentable, sourceSets) -> + when (documentable) { + is DClass -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + is DObject -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + is DAnnotation -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + is DInterface -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + is DEnum -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + is DFunction -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + is DProperty -> documentable.copy( + extra = documentable.extra + ClashingDriIdentifier( + sourceSets + (documentable.extra[ClashingDriIdentifier]?.value ?: emptySet()) + ) + ) + else -> documentable + } + } + @Suppress("UNCHECKED_CAST") + merged as List<T> + } + + + fun analyzeExpectActual(sameDriElements: List<T>): List<T> { + val (expects, actuals) = sameDriElements.partition { it.expectPresentInSet != null } + val groupedByOwnExpectWithActualSourceSetIds = expects.map { expect -> + val actualsForGivenExpect = actuals.filter { actual -> + dependencyInfo[actual.sourceSets.single()] + ?.contains(expect.expectPresentInSet!!) + ?: throw IllegalStateException("Cannot resolve expect/actual relation for ${actual.name}") + } + (listOf(expect) + actualsForGivenExpect) to actualsForGivenExpect.flatMap { it.sourceSets }.toSet() + } + val reducedToOneDocumentableWithActualSourceSetIds = + groupedByOwnExpectWithActualSourceSetIds.map { it.first.reduce(reducer) to it.second } + return reducedToOneDocumentableWithActualSourceSetIds.let(::mergeClashingElements) + } + + + return elements.partition { + (it as? WithIsExpectActual)?.isExpectActual ?: false + }.let { (expectActuals, notExpectActuals) -> + notExpectActuals.map { it to it.sourceSets } + .groupBy { it.first.dri }.values.flatMap(::mergeClashingElements) + + expectActuals.groupBy { it.dri }.values.flatMap(::analyzeExpectActual) + } + } + + public fun DPackage.mergeWith(other: DPackage): DPackage = copy( + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + typealiases = merge(typealiases + other.typealiases) { ta1, ta2 -> ta1.mergeWith(ta2) }, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + public fun DFunction.mergeWith(other: DFunction): DFunction = copy( + parameters = merge(this.parameters + other.parameters) { p1, p2 -> p1.mergeWith(p2) }, + receiver = receiver?.let { r -> other.receiver?.let { r.mergeWith(it) } ?: r } ?: other.receiver, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + modifier = modifier + other.modifier, + sourceSets = sourceSets + other.sourceSets, + generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) }, + ).mergeExtras(this, other) + + public fun DProperty.mergeWith(other: DProperty): DProperty = copy( + receiver = receiver?.let { r -> other.receiver?.let { r.mergeWith(it) } ?: r } ?: other.receiver, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + modifier = modifier + other.modifier, + sourceSets = sourceSets + other.sourceSets, + getter = getter?.let { g -> other.getter?.let { g.mergeWith(it) } ?: g } ?: other.getter, + setter = setter?.let { s -> other.setter?.let { s.mergeWith(it) } ?: s } ?: other.setter, + generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) }, + ).mergeExtras(this, other) + + private fun DClasslike.mergeWith(other: DClasslike): DClasslike = when { + this is DClass && other is DClass -> mergeWith(other) + this is DEnum && other is DEnum -> mergeWith(other) + this is DInterface && other is DInterface -> mergeWith(other) + this is DObject && other is DObject -> mergeWith(other) + this is DAnnotation && other is DAnnotation -> mergeWith(other) + else -> throw IllegalStateException("${this::class.qualifiedName} ${this.name} cannot be merged with ${other::class.qualifiedName} ${other.name}") + } + + private fun DClass.mergeWith(other: DClass): DClass = copy( + constructors = mergeExpectActual( + constructors + other.constructors + ) { f1, f2 -> f1.mergeWith(f2) }, + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion, + generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) }, + modifier = modifier + other.modifier, + supertypes = supertypes + other.supertypes, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DEnum.mergeWith(other: DEnum): DEnum = copy( + entries = merge(entries + other.entries) { ee1, ee2 -> ee1.mergeWith(ee2) }, + constructors = mergeExpectActual( + constructors + other.constructors + ) { f1, f2 -> f1.mergeWith(f2) }, + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion, + supertypes = supertypes + other.supertypes, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DEnumEntry.mergeWith(other: DEnumEntry): DEnumEntry = copy( + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DObject.mergeWith(other: DObject): DObject = copy( + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + supertypes = supertypes + other.supertypes, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DInterface.mergeWith(other: DInterface): DInterface = copy( + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion, + generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) }, + supertypes = supertypes + other.supertypes, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DAnnotation.mergeWith(other: DAnnotation): DAnnotation = copy( + constructors = mergeExpectActual( + constructors + other.constructors + ) { f1, f2 -> f1.mergeWith(f2) }, + functions = mergeExpectActual(functions + other.functions) { f1, f2 -> f1.mergeWith(f2) }, + properties = mergeExpectActual(properties + other.properties) { p1, p2 -> p1.mergeWith(p2) }, + classlikes = mergeExpectActual(classlikes + other.classlikes) { c1, c2 -> c1.mergeWith(c2) }, + companion = companion?.let { c -> other.companion?.let { c.mergeWith(it) } ?: c } ?: other.companion, + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sources = sources + other.sources, + visibility = visibility + other.visibility, + sourceSets = sourceSets + other.sourceSets, + generics = merge(generics + other.generics) { tp1, tp2 -> tp1.mergeWith(tp2) } + ).mergeExtras(this, other) + + private fun DParameter.mergeWith(other: DParameter): DParameter = copy( + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DTypeParameter.mergeWith(other: DTypeParameter): DTypeParameter = copy( + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) + + private fun DTypeAlias.mergeWith(other: DTypeAlias): DTypeAlias = copy( + documentation = documentation + other.documentation, + expectPresentInSet = expectPresentInSet ?: other.expectPresentInSet, + underlyingType = underlyingType + other.underlyingType, + visibility = visibility + other.visibility, + sourceSets = sourceSets + other.sourceSets + ).mergeExtras(this, other) +} + +public data class ClashingDriIdentifier(val value: Set<DokkaConfiguration.DokkaSourceSet>) : ExtraProperty<Documentable> { + public companion object : ExtraProperty.Key<Documentable, ClashingDriIdentifier> { + override fun mergeStrategyFor( + left: ClashingDriIdentifier, + right: ClashingDriIdentifier + ): MergeStrategy<Documentable> = + MergeStrategy.Replace(ClashingDriIdentifier(left.value + right.value)) + } + + override val key: ExtraProperty.Key<Documentable, *> = ClashingDriIdentifier +} + +// TODO [beresnev] remove this copy-paste and use the same method from stdlib instead after updating to 1.5 +private inline fun <T, R : Any> Iterable<T>.firstNotNullOfOrNull(transform: (T) -> R?): R? { + for (element in this) { + val result = transform(element) + if (result != null) { + return result + } + } + return null +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt new file mode 100644 index 00000000..aff1f763 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableMerger.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.documentation + +import org.jetbrains.dokka.model.DModule + +public fun interface DocumentableMerger { + public operator fun invoke(modules: Collection<DModule>): DModule? +} + diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt new file mode 100644 index 00000000..ad35ab1d --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableToPageTranslator.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.documentation + +import org.jetbrains.dokka.model.DModule +import org.jetbrains.dokka.pages.RootPageNode + +public fun interface DocumentableToPageTranslator { + public operator fun invoke(module: DModule): RootPageNode +} + diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt new file mode 100644 index 00000000..f680b9f3 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/DocumentableTransformer.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.documentation + +import org.jetbrains.dokka.model.DModule +import org.jetbrains.dokka.plugability.DokkaContext + +public fun interface DocumentableTransformer { + public operator fun invoke(original: DModule, context: DokkaContext): DModule +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt new file mode 100644 index 00000000..8ae28605 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/documentation/PreMergeDocumentableTransformer.kt @@ -0,0 +1,39 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.documentation + +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet +import org.jetbrains.dokka.DokkaConfiguration.PackageOptions +import org.jetbrains.dokka.model.DModule +import org.jetbrains.dokka.model.Documentable +import org.jetbrains.dokka.model.DocumentableSource +import org.jetbrains.dokka.model.WithSources + +public interface PreMergeDocumentableTransformer { + public operator fun invoke(modules: List<DModule>): List<DModule> +} + +/** + * It is fair to assume that a given [Documentable] is not merged when seen by the [PreMergeDocumentableTransformer]. + * Therefore, it can also be assumed, that there is just a single source set connected to the given [documentable] + * @return the single source set associated with this [documentable]. + */ +@Suppress("UnusedReceiverParameter") // Receiver is used for scoping this function +public fun PreMergeDocumentableTransformer.sourceSet(documentable: Documentable): DokkaSourceSet { + return documentable.sourceSets.single() +} + +/** + * @return The [PackageOptions] associated with this documentable, or null + */ +public fun PreMergeDocumentableTransformer.perPackageOptions(documentable: Documentable): PackageOptions? { + val packageName = documentable.dri.packageName ?: return null + return sourceSet(documentable).perPackageOptions + .sortedByDescending { packageOptions -> packageOptions.matchingRegex.length } + .firstOrNull { packageOptions -> Regex(packageOptions.matchingRegex).matches(packageName) } +} + +public fun <T> PreMergeDocumentableTransformer.source(documentable: T): DocumentableSource where T : Documentable, T : WithSources = + checkNotNull(documentable.sources[sourceSet(documentable)]) diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt new file mode 100644 index 00000000..8c008f04 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageCreator.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.pages + +import org.jetbrains.dokka.pages.RootPageNode + +public interface CreationContext + +public object NoCreationContext : CreationContext + +public interface PageCreator<T: CreationContext> { + public operator fun invoke(creationContext: T): RootPageNode +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt new file mode 100644 index 00000000..b2bbc1d1 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformer.kt @@ -0,0 +1,11 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.pages + +import org.jetbrains.dokka.pages.RootPageNode + +public fun interface PageTransformer { + public operator fun invoke(input: RootPageNode): RootPageNode +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt new file mode 100644 index 00000000..a00c1578 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/pages/PageTransformerBuilders.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.pages + +import org.jetbrains.dokka.pages.PageNode +import org.jetbrains.dokka.pages.RootPageNode + +public fun pageScanner(block: PageNode.() -> Unit): PageTransformer { + return PageTransformer { input -> input.invokeOnAll(block) as RootPageNode } +} + +public fun pageMapper(block: PageNode.() -> PageNode): PageTransformer { + return PageTransformer { input -> input.alterChildren(block) as RootPageNode } +} + +public fun pageStructureTransformer(block: RootPageNode.() -> RootPageNode): PageTransformer { + return PageTransformer { input -> block(input) } +} + +public fun PageNode.invokeOnAll(block: PageNode.() -> Unit): PageNode = + this.also(block).also { it.children.forEach { it.invokeOnAll(block) } } + +public fun PageNode.alterChildren(block: PageNode.() -> PageNode): PageNode = + block(this).modified(children = this.children.map { it.alterChildren(block) }) + diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt new file mode 100644 index 00000000..f7f45d25 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator.kt @@ -0,0 +1,20 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.sources + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.runBlocking +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.model.DModule +import org.jetbrains.dokka.plugability.DokkaContext + +public interface AsyncSourceToDocumentableTranslator : SourceToDocumentableTranslator { + public suspend fun invokeSuspending(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext): DModule + + override fun invoke(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext): DModule = + runBlocking(Dispatchers.Default) { + invokeSuspending(sourceSet, context) + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt new file mode 100644 index 00000000..04f11830 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/transformers/sources/SourceToDocumentableTranslator.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.transformers.sources + +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet +import org.jetbrains.dokka.model.DModule +import org.jetbrains.dokka.plugability.DokkaContext + +public fun interface SourceToDocumentableTranslator { + public fun invoke(sourceSet: DokkaSourceSet, context: DokkaContext): DModule +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt new file mode 100644 index 00000000..e0b84a28 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Collections.kt @@ -0,0 +1,29 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi + +/** + * This utility method was previously imported from `org.jetbrains.kotlin.utils.addToStdlib`, + * and there were a lot of usages. Since no replacement exists in stdlib, it was implemented + * locally for convenience. + */ +@InternalDokkaApi +public inline fun <reified T : Any> Iterable<*>.firstIsInstanceOrNull(): T? { + for (element in this) if (element is T) return element + return null +} + +/** + * This utility method was previously imported from `org.jetbrains.kotlin.utils.addToStdlib`, + * and there were a lot of usages. Since no replacement exists in stdlib, it was implemented + * locally for convenience. + */ +@InternalDokkaApi +public inline fun <reified T : Any> Sequence<*>.firstIsInstanceOrNull(): T? { + for (element in this) if (element is T) return element + return null +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt new file mode 100644 index 00000000..7855c9c1 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/DokkaLogging.kt @@ -0,0 +1,90 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import java.util.concurrent.atomic.AtomicInteger + +public interface DokkaLogger { + public var warningsCount: Int + public var errorsCount: Int + + public fun debug(message: String) + public fun info(message: String) + public fun progress(message: String) + public fun warn(message: String) + public fun error(message: String) +} + +public fun DokkaLogger.report() { + if (warningsCount > 0 || errorsCount > 0) { + info( + "Generation completed with $warningsCount warning" + + (if (warningsCount == 1) "" else "s") + + " and $errorsCount error" + + if (errorsCount == 1) "" else "s" + ) + } else { + info("Generation completed successfully") + } +} + +public enum class LoggingLevel( + public val index: Int +) { + DEBUG(0), PROGRESS(1), INFO(2), WARN(3), ERROR(4); +} + +/** + * Used to decouple the transport layer from logger and make it convenient for testing + */ +public fun interface MessageEmitter : (String) -> Unit { + public companion object { + public val consoleEmitter: MessageEmitter = MessageEmitter { message -> println(message) } + } +} + +public class DokkaConsoleLogger( + private val minLevel: LoggingLevel = LoggingLevel.PROGRESS, + private val emitter: MessageEmitter = MessageEmitter.consoleEmitter +) : DokkaLogger { + private val warningsCounter = AtomicInteger() + private val errorsCounter = AtomicInteger() + + override var warningsCount: Int + get() = warningsCounter.get() + set(value) = warningsCounter.set(value) + + override var errorsCount: Int + get() = errorsCounter.get() + set(value) = errorsCounter.set(value) + + override fun debug(message: String) { + if (shouldBeDisplayed(LoggingLevel.DEBUG)) emitter(message) + } + + override fun progress(message: String) { + if (shouldBeDisplayed(LoggingLevel.PROGRESS)) emitter("PROGRESS: $message") + } + + override fun info(message: String) { + if (shouldBeDisplayed(LoggingLevel.INFO)) emitter(message) + } + + override fun warn(message: String) { + if (shouldBeDisplayed(LoggingLevel.WARN)) { + emitter("WARN: $message") + } + warningsCounter.incrementAndGet() + } + + override fun error(message: String) { + if (shouldBeDisplayed(LoggingLevel.ERROR)) { + emitter("ERROR: $message") + } + errorsCounter.incrementAndGet() + } + + private fun shouldBeDisplayed(messageLevel: LoggingLevel): Boolean = messageLevel.index >= minLevel.index +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt new file mode 100644 index 00000000..fc2330d2 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Html.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi +import java.net.URLEncoder + + +/** + * Replaces symbols reserved in HTML with their respective entities. + * Replaces & with &, < with < and > with > + */ +@InternalDokkaApi +public fun String.htmlEscape(): String = replace("&", "&").replace("<", "<").replace(">", ">").replace("\"", """) + +@InternalDokkaApi +public fun String.urlEncoded(): String = URLEncoder.encode(this, "UTF-8") + +@InternalDokkaApi +public fun String.formatToEndWithHtml(): String = + if (endsWith(".html") || contains(Regex("\\.html#"))) this else "$this.html" diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt new file mode 100644 index 00000000..57d3b1e1 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/SelfRepresentingSingletonSet.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi + +@InternalDokkaApi +@Suppress("DEPRECATION_ERROR") +@Deprecated(message = "SelfRepresentingSingletonSet is an incorrect set implementation that breaks set invariants", level = DeprecationLevel.ERROR) +public interface SelfRepresentingSingletonSet<T : SelfRepresentingSingletonSet<T>> : Set<T> { + override val size: Int get() = 1 + + override fun contains(element: T): Boolean = this == element + + override fun containsAll(elements: Collection<T>): Boolean = + if (elements.isEmpty()) true + else elements.all { this == it } + + override fun isEmpty(): Boolean = false + + override fun iterator(): Iterator<T> = iterator { + @Suppress("UNCHECKED_CAST") + yield(this@SelfRepresentingSingletonSet as T) + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt new file mode 100644 index 00000000..c8b8a837 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/ServiceLocator.kt @@ -0,0 +1,99 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi +import java.io.File +import java.net.URISyntaxException +import java.net.URL +import java.util.* +import java.util.jar.JarFile +import java.util.zip.ZipEntry + +@InternalDokkaApi +public data class ServiceDescriptor(val name: String, val category: String, val description: String?, val className: String) + +@InternalDokkaApi +public class ServiceLookupException(message: String) : Exception(message) + +@InternalDokkaApi +public object ServiceLocator { + public fun <T : Any> lookup(clazz: Class<T>, category: String, implementationName: String): T { + val descriptor = lookupDescriptor(category, implementationName) + return lookup(clazz, descriptor) + } + + public fun <T : Any> lookup( + clazz: Class<T>, + descriptor: ServiceDescriptor + ): T { + val loadedClass = javaClass.classLoader.loadClass(descriptor.className) + val constructor = loadedClass.constructors.firstOrNull { it.parameterTypes.isEmpty() } ?: throw ServiceLookupException("Class ${descriptor.className} has no corresponding constructor") + + val implementationRawType: Any = + if (constructor.parameterTypes.isEmpty()) constructor.newInstance() else constructor.newInstance(constructor) + + if (!clazz.isInstance(implementationRawType)) { + throw ServiceLookupException("Class ${descriptor.className} is not a subtype of ${clazz.name}") + } + + @Suppress("UNCHECKED_CAST") + return implementationRawType as T + } + + private fun lookupDescriptor(category: String, implementationName: String): ServiceDescriptor { + val properties = javaClass.classLoader.getResourceAsStream("dokka/$category/$implementationName.properties")?.use { stream -> + Properties().let { properties -> + properties.load(stream) + properties + } + } ?: throw ServiceLookupException("No implementation with name $implementationName found in category $category") + + val className = properties["class"]?.toString() ?: throw ServiceLookupException("Implementation $implementationName has no class configured") + + return ServiceDescriptor(implementationName, category, properties["description"]?.toString(), className) + } + + public fun URL.toFile(): File { + assert(protocol == "file") + + return try { + File(toURI()) + } catch (e: URISyntaxException) { //Try to handle broken URLs, with unescaped spaces + File(path) + } + } + + public fun allServices(category: String): List<ServiceDescriptor> { + val entries = this.javaClass.classLoader.getResources("dokka/$category")?.toList() ?: emptyList() + + return entries.flatMap { + when (it.protocol) { + "file" -> it.toFile().listFiles()?.filter { it.extension == "properties" }?.map { lookupDescriptor(category, it.nameWithoutExtension) } ?: emptyList() + "jar" -> { + JarFile(URL(it.file.substringBefore("!")).toFile()).use { file -> + val jarPath = it.file.substringAfterLast("!").removePrefix("/").removeSuffix("/") + file.entries() + .asSequence() + .filter { entry -> !entry.isDirectory && entry.path == jarPath && entry.extension == "properties" } + .map { entry -> + lookupDescriptor(category, entry.fileName.substringBeforeLast(".")) + }.toList() + } + } + else -> emptyList() + } + } + } +} + +private val ZipEntry.fileName: String + get() = name.substringAfterLast("/", name) + +private val ZipEntry.path: String + get() = name.substringBeforeLast("/", "").removePrefix("/") + +private val ZipEntry.extension: String? + get() = fileName.let { fn -> if ("." in fn) fn.substringAfterLast(".") else null } diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt new file mode 100644 index 00000000..7e6b3fbe --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/Uri.kt @@ -0,0 +1,46 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi +import java.net.URI + +@InternalDokkaApi +@Deprecated("Deprecated for removal") // Unused in Dokka +public fun URI.relativeTo(uri: URI): URI { + // Normalize paths to remove . and .. segments + val base = uri.normalize() + val child = this.normalize() + + fun StringBuilder.appendRelativePath() { + // Split paths into segments + var bParts = base.path.split('/').dropLastWhile { it.isEmpty() } + val cParts = child.path.split('/').dropLastWhile { it.isEmpty() } + + // Discard trailing segment of base path + if (bParts.isNotEmpty() && !base.path.endsWith("/")) { + bParts = bParts.dropLast(1) + } + + // Compute common prefix + val commonPartsSize = bParts.zip(cParts).takeWhile { (basePart, childPart) -> basePart == childPart }.count() + bParts.drop(commonPartsSize).joinTo(this, separator = "") { "../" } + cParts.drop(commonPartsSize).joinTo(this, separator = "/") + } + + return URI.create(buildString { + if (base.path != child.path) { + appendRelativePath() + } + child.rawQuery?.let { + append("?") + append(it) + } + child.rawFragment?.let { + append("#") + append(it) + } + }) +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt new file mode 100644 index 00000000..29e37d13 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/associateWithNotNull.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi + +@InternalDokkaApi +public inline fun <K, V : Any> Iterable<K>.associateWithNotNull(valueSelector: (K) -> V?): Map<K, V> { + @Suppress("UNCHECKED_CAST") + return associateWith { valueSelector(it) }.filterValues { it != null } as Map<K, V> +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt new file mode 100644 index 00000000..c2598a33 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/cast.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import org.jetbrains.dokka.InternalDokkaApi + +@InternalDokkaApi +public inline fun <reified T> Any.cast(): T { + return this as T +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt new file mode 100644 index 00000000..a8325161 --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/json.kt @@ -0,0 +1,65 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import com.fasterxml.jackson.core.JsonGenerator +import com.fasterxml.jackson.databind.DeserializationFeature +import com.fasterxml.jackson.databind.SerializerProvider +import com.fasterxml.jackson.databind.module.SimpleModule +import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer +import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper +import com.fasterxml.jackson.module.kotlin.jacksonTypeRef +import java.io.File +import com.fasterxml.jackson.core.type.TypeReference as JacksonTypeReference + +private val objectMapper = run { + val module = SimpleModule().apply { + addSerializer(FileSerializer) + addAbstractTypeMapping(Set::class.java, LinkedHashSet::class.java) + } + jacksonObjectMapper() + .registerModule(module) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) +} + +@PublishedApi +internal class TypeReference<T> @PublishedApi internal constructor( + internal val jackson: JacksonTypeReference<T> +) { + companion object { + @PublishedApi + internal inline operator fun <reified T> invoke(): TypeReference<T> = TypeReference(jacksonTypeRef()) + } +} + +// not used anywhere since at least 1.7.20, but might still be referenced in previously compiled +// inline functions. should be safe to remove after a few major releases. +@PublishedApi +@Deprecated( + "Left for previously compiled public inline classes, not for use", + ReplaceWith("serializeAsCompactJson(value)"), + level = DeprecationLevel.ERROR +) +internal fun toJsonString(value: Any): String = serializeAsCompactJson(value) + +internal fun serializeAsCompactJson(value: Any): String = + objectMapper.writeValueAsString(value) + +internal fun serializeAsPrettyJson(value: Any): String = + objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(value) + +@PublishedApi +internal inline fun <reified T : Any> parseJson(json: String): T = parseJson(json, TypeReference()) + +@PublishedApi +internal fun <T : Any> parseJson(json: String, typeReference: TypeReference<T>): T = + objectMapper.readValue(json, typeReference.jackson) + + +private object FileSerializer : StdScalarSerializer<File>(File::class.java) { + override fun serialize(value: File, g: JsonGenerator, provider: SerializerProvider) { + g.writeString(value.path) + } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt new file mode 100644 index 00000000..001fca0b --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/utilities/parallelCollectionOperations.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.utilities + +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch +import org.jetbrains.dokka.InternalDokkaApi + +@InternalDokkaApi +public suspend inline fun <A, B> Iterable<A>.parallelMap(crossinline f: suspend (A) -> B): List<B> = coroutineScope { + map { async { f(it) } }.awaitAll() +} + +@InternalDokkaApi +public suspend inline fun <A, B> Iterable<A>.parallelMapNotNull(crossinline f: suspend (A) -> B?): List<B> = coroutineScope { + map { async { f(it) } }.awaitAll().filterNotNull() +} + +@InternalDokkaApi +public suspend inline fun <A> Iterable<A>.parallelForEach(crossinline f: suspend (A) -> Unit): Unit = coroutineScope { + forEach { launch { f(it) } } +} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt new file mode 100644 index 00000000..349b398b --- /dev/null +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/validity/PreGenerationChecker.kt @@ -0,0 +1,17 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package org.jetbrains.dokka.validity + +public fun interface PreGenerationChecker : () -> PreGenerationCheckerOutput { + + override fun invoke(): PreGenerationCheckerOutput +} + +public data class PreGenerationCheckerOutput(val result: Boolean, val messages: List<String>) { + + public operator fun plus(pair: Pair<Boolean, List<String>>): Pair<Boolean, List<String>> { + return Pair(result && pair.first, messages + pair.second) + } +} diff --git a/dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF b/dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 00000000..9d885be5 --- /dev/null +++ b/dokka-subprojects/core/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1 @@ +Manifest-Version: 1.0 diff --git a/dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties b/dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties new file mode 100644 index 00000000..04a9237d --- /dev/null +++ b/dokka-subprojects/core/src/main/resources/META-INF/dokka/dokka-version.properties @@ -0,0 +1,5 @@ +# +# Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +# + +dokka-version=<dokka-version> diff --git a/dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt b/dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt new file mode 100644 index 00000000..261ca325 --- /dev/null +++ b/dokka-subprojects/core/src/test/kotlin/model/CompositeSourceSetIDTest.kt @@ -0,0 +1,76 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package model + +import org.jetbrains.dokka.DokkaSourceSetID +import org.jetbrains.dokka.model.CompositeSourceSetID +import kotlin.test.* + +class CompositeSourceSetIDTest { + + @Test + fun `constructor fails with empty collection`() { + assertFailsWith<IllegalArgumentException>("Expected no construction of empty `CompositeSourceSetID`") { + CompositeSourceSetID(emptyList()) + } + } + + @Test + fun `merged for single source set`() { + val sourceSetID = DokkaSourceSetID("module", "sourceSet") + val composite = CompositeSourceSetID(sourceSetID) + + assertEquals( + composite.merged, sourceSetID, + "Expected merged source set id to be equal to single child" + ) + } + + @Test + fun `merged with multiple source sets`() { + val composite = CompositeSourceSetID( + listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"), DokkaSourceSetID("m3", "s3")) + ) + + assertEquals( + DokkaSourceSetID("m1+m2+m3", "s1+s2+s3"), composite.merged, + "Expected merged source set id to concatenate source sets" + ) + } + + @Test + fun `contains with child sourceSetID`() { + val composite = CompositeSourceSetID(listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"))) + + assertFalse( + DokkaSourceSetID("m3", "s3") in composite, + "Expected source set id not being contained in composite" + ) + + assertTrue( + DokkaSourceSetID("m1", "s1") in composite, + "Expected child source set id being contained in composite" + ) + + assertTrue( + DokkaSourceSetID("m1+m2", "s1+s2") in composite, + "Expected merged source set id being contained in composite" + ) + } + + @Test + fun `plus operator`() { + val composite = DokkaSourceSetID("m1", "s1") + DokkaSourceSetID("m2", "s2") + DokkaSourceSetID("m3", "s3") + assertEquals( + DokkaSourceSetID("m1+m2+m3", "s1+s2+s3"), composite.merged, + "Expected all three source sets being merged in order" + ) + } + + operator fun DokkaSourceSetID.plus(other: DokkaSourceSetID): CompositeSourceSetID { + return CompositeSourceSetID(listOf(this, other)) + } + +} diff --git a/dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt b/dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt new file mode 100644 index 00000000..d7b7a2a5 --- /dev/null +++ b/dokka-subprojects/core/src/test/kotlin/model/DisplaySourceSetTest.kt @@ -0,0 +1,63 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package model + +import org.jetbrains.dokka.DokkaSourceSetID +import org.jetbrains.dokka.Platform +import org.jetbrains.dokka.model.* +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class DisplaySourceSetTest { + @Test + fun `contains sourceSetId`() { + val contentSourceSet = DisplaySourceSet( + sourceSetIDs = CompositeSourceSetID(listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"))), + name = "displayName", + platform = Platform.common + ) + + assertFalse( + DokkaSourceSetID("m3", "s3") in contentSourceSet.sourceSetIDs, + "Expected source set id not being contained in content source set" + ) + + assertTrue( + DokkaSourceSetID("m1", "s1") in contentSourceSet.sourceSetIDs, + "Expected source set id being contained in content source set" + ) + + assertTrue( + DokkaSourceSetID("m1+m2", "s1+s2") in contentSourceSet.sourceSetIDs, + "Expected merged source set being contained in content source set" + ) + } + + @Test + fun `Iterable contains sourceSetId`() { + + val contentSourceSet = DisplaySourceSet( + sourceSetIDs = CompositeSourceSetID(listOf(DokkaSourceSetID("m1", "s1"), DokkaSourceSetID("m2", "s2"))), + name = "displayName", + platform = Platform.common + ) + + assertFalse( + DokkaSourceSetID("m3", "s3") in listOf(contentSourceSet).computeSourceSetIds(), + "Expected source set id not being contained in content source set" + ) + + assertTrue( + DokkaSourceSetID("m1", "s1") in listOf(contentSourceSet).computeSourceSetIds(), + "Expected source set id being contained in content source set" + ) + + assertTrue( + DokkaSourceSetID("m1+m2", "s1+s2") in listOf(contentSourceSet).computeSourceSetIds(), + "Expected merged source set being contained in content source set" + ) + } +} diff --git a/dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt b/dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt new file mode 100644 index 00000000..56d32bb2 --- /dev/null +++ b/dokka-subprojects/core/src/test/kotlin/model/DocumentableTest.kt @@ -0,0 +1,115 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package model + +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.* +import org.jetbrains.dokka.model.properties.PropertyContainer +import kotlin.test.Test +import kotlin.test.assertEquals + +class DocumentableTest { + + @Test + fun withDescendents() { + val dClass = DClass( + dri = DRI(), + name = "TestClass", + constructors = emptyList(), + classlikes = emptyList(), + companion = null, + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + visibility = emptyMap(), + generics = emptyList(), + modifier = emptyMap(), + properties = emptyList(), + sources = emptyMap(), + sourceSets = emptySet(), + supertypes = emptyMap(), + isExpectActual = false, + functions = listOf( + DFunction( + dri = DRI(), + name = "function0", + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + visibility = emptyMap(), + generics = emptyList(), + modifier = emptyMap(), + sources = emptyMap(), + sourceSets = emptySet(), + type = Void, + receiver = null, + isConstructor = false, + isExpectActual = false, + parameters = listOf( + DParameter( + dri = DRI(), + name = "f0p0", + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + sourceSets = emptySet(), + type = Void + ), + DParameter( + dri = DRI(), + name = "f0p1", + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + sourceSets = emptySet(), + type = Void + ) + ) + ), + DFunction( + dri = DRI(), + name = "function1", + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + visibility = emptyMap(), + generics = emptyList(), + modifier = emptyMap(), + sources = emptyMap(), + sourceSets = emptySet(), + type = Void, + receiver = null, + isConstructor = false, + isExpectActual = false, + parameters = listOf( + DParameter( + dri = DRI(), + name = "f1p0", + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + sourceSets = emptySet(), + type = Void + ), + DParameter( + dri = DRI(), + name = "f1p1", + documentation = emptyMap(), + expectPresentInSet = null, + extra = PropertyContainer.empty(), + sourceSets = emptySet(), + type = Void + ) + ) + ) + ) + ) + + assertEquals( + listOf("TestClass", "function0", "f0p0", "f0p1", "function1", "f1p0", "f1p1"), + dClass.withDescendants().map { it.name }.toList() + ) + } +} diff --git a/dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt b/dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt new file mode 100644 index 00000000..c10cb32d --- /dev/null +++ b/dokka-subprojects/core/src/test/kotlin/utilities/DokkaConfigurationJsonTest.kt @@ -0,0 +1,72 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package utilities + +import org.jetbrains.dokka.DokkaConfigurationImpl +import org.jetbrains.dokka.DokkaSourceSetID +import org.jetbrains.dokka.DokkaSourceSetImpl +import org.jetbrains.dokka.toCompactJsonString +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals + +class DokkaConfigurationJsonTest { + @Test + fun `simple configuration toJsonString then parseJson`() { + val configuration = DokkaConfigurationImpl( + moduleName = "moduleName", + outputDir = File("customOutputDir"), + pluginsClasspath = listOf(File("plugins/customPlugin.jar")), + sourceSets = listOf( + DokkaSourceSetImpl( + sourceRoots = setOf(File("customSourceRoot")), + sourceSetID = DokkaSourceSetID("customModuleName", "customSourceSetName") + ) + ) + ) + + val jsonString = configuration.toCompactJsonString() + val parsedConfiguration = DokkaConfigurationImpl(jsonString) + assertEquals(configuration, parsedConfiguration) + } + + @Test + fun `parse simple configuration json`() { + val json = """ + { + "moduleName": "moduleName", + "outputDir": "customOutputDir", + "pluginsClasspath": [ "plugins/customPlugin.jar" ], + "sourceSets": [ + { + "sourceSetID": { + "scopeId": "customModuleName", + "sourceSetName": "customSourceSetName" + }, + "sourceRoots": [ "customSourceRoot" ], + "classpath": [ "classpath/custom1.jar", "classpath/custom2.jar" ] + } + ] + } + """.trimIndent() + + val parsedConfiguration = DokkaConfigurationImpl(json) + assertEquals( + DokkaConfigurationImpl( + moduleName = "moduleName", + outputDir = File("customOutputDir"), + pluginsClasspath = listOf(File("plugins/customPlugin.jar")), + sourceSets = listOf( + DokkaSourceSetImpl( + sourceRoots = setOf(File("customSourceRoot")), + sourceSetID = DokkaSourceSetID("customModuleName", "customSourceSetName"), + classpath = listOf(File("classpath/custom1.jar"), File("classpath/custom2.jar")) + ) + ) + ), + parsedConfiguration + ) + } +} diff --git a/dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt b/dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt new file mode 100644 index 00000000..c706de5f --- /dev/null +++ b/dokka-subprojects/core/src/test/kotlin/utilities/JsonKtTest.kt @@ -0,0 +1,80 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package utilities + +import org.jetbrains.dokka.utilities.parseJson +import org.jetbrains.dokka.utilities.serializeAsCompactJson +import org.jetbrains.dokka.utilities.serializeAsPrettyJson +import kotlin.test.Test +import kotlin.test.assertEquals + +class JsonTest { + + @Test + fun `should serialize an object as compact json`() { + val testObject = SimpleTestDataClass( + someString = "Foo", + someInt = 42, + someDouble = 42.0 + ) + + val actual = serializeAsCompactJson(testObject) + val expected = "{\"someString\":\"Foo\",\"someInt\":42,\"someIntWithDefaultValue\":42,\"someDouble\":42.0}" + + assertEquals(expected, actual) + } + + @Test + fun `should serialize an object as pretty json`() { + val testObject = SimpleTestDataClass( + someString = "Foo", + someInt = 42, + someDouble = 42.0 + ) + + val actual = serializeAsPrettyJson(testObject) + + val expected = """ + { + "someString" : "Foo", + "someInt" : 42, + "someIntWithDefaultValue" : 42, + "someDouble" : 42.0 + }""".trimIndent().withSystemLineSeparator() + + assertEquals(expected, actual) + } + + @Test + fun `should keep order of Set after serialize and deserialize`() { + val testObject = SimpleTestSetDataClass( + someStringSet = setOf("Foo", "Bar", "ABC") + ) + val expected = testObject.someStringSet.toList() // ["Foo", "Bar", "ABC"] + + val jsonString = serializeAsCompactJson(testObject) + val parsedClass: SimpleTestSetDataClass = parseJson(jsonString) + val actual = parsedClass.someStringSet.toList() + + assertEquals(expected, actual) + } + + /** + * If the expected output was generated on Linux, but the tests are run under Windows, + * the test might fail when comparing the strings due to different separators. + */ + private fun String.withSystemLineSeparator(): String = this.replace("\n", System.lineSeparator()) +} + +data class SimpleTestDataClass( + val someString: String, + val someInt: Int, + val someIntWithDefaultValue: Int = 42, + val someDouble: Double +) + +data class SimpleTestSetDataClass( + val someStringSet: Set<String> +) |