[Gradle] Implement IdeaKotlinClasspath concept
KT-55492
This commit is contained in:
committed by
Space Team
parent
f6c63c6e4f
commit
4eb5641e2a
@@ -318,29 +318,51 @@ public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordina
|
||||
}
|
||||
|
||||
public abstract class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency : org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency {
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency$Companion;
|
||||
public static final field KOTLIN_COMPILE_BINARY_TYPE Ljava/lang/String;
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency$Companion {
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependencyKt {
|
||||
public static final fun isClasspathBinaryType (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
public static final fun isDocumentationBinaryType (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
public static final fun isSourcesBinaryType (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
public static final fun isKotlinCompileBinaryType (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;)Z
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath : java/io/Serializable, java/util/Set, kotlin/jvm/internal/markers/KMutableSet {
|
||||
public synthetic fun <init> (Ljava/util/Set;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun add (Ljava/io/File;)Z
|
||||
public synthetic fun add (Ljava/lang/Object;)Z
|
||||
public fun addAll (Ljava/util/Collection;)Z
|
||||
public fun clear ()V
|
||||
public fun contains (Ljava/io/File;)Z
|
||||
public final fun contains (Ljava/lang/Object;)Z
|
||||
public fun containsAll (Ljava/util/Collection;)Z
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public fun getSize ()I
|
||||
public fun hashCode ()I
|
||||
public fun isEmpty ()Z
|
||||
public fun iterator ()Ljava/util/Iterator;
|
||||
public fun remove (Ljava/io/File;)Z
|
||||
public final fun remove (Ljava/lang/Object;)Z
|
||||
public fun removeAll (Ljava/util/Collection;)Z
|
||||
public fun retainAll (Ljava/util/Collection;)Z
|
||||
public final fun size ()I
|
||||
public fun toArray ()[Ljava/lang/Object;
|
||||
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspathKt {
|
||||
public static final fun IdeaKotlinClasspath ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public static final fun IdeaKotlinClasspath (Ljava/lang/Iterable;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public static final fun IdeaKotlinClasspath ([Ljava/io/File;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency : java/io/Serializable, org/jetbrains/kotlin/tooling/core/HasMutableExtras {
|
||||
public static final field CLASSPATH_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency$Companion;
|
||||
public static final field DOCUMENTATION_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field SOURCES_BINARY_TYPE Ljava/lang/String;
|
||||
public abstract fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency$Companion {
|
||||
public static final field CLASSPATH_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field DOCUMENTATION_BINARY_TYPE Ljava/lang/String;
|
||||
public static final field SOURCES_BINARY_TYPE Ljava/lang/String;
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates : java/io/Serializable {
|
||||
}
|
||||
|
||||
@@ -353,32 +375,18 @@ public abstract interface annotation class org/jetbrains/kotlin/gradle/idea/tcs/
|
||||
public abstract interface annotation class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinModel : java/lang/annotation/Annotation {
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates : org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates {
|
||||
public static final field serialVersionUID J
|
||||
public fun <init> (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Ljava/io/File;)V
|
||||
public final fun component1 ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;
|
||||
public final fun component2 ()Ljava/io/File;
|
||||
public final fun copy (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Ljava/io/File;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;
|
||||
public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Ljava/io/File;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getArtifactFile ()Ljava/io/File;
|
||||
public final fun getProject ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency : org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency {
|
||||
public static final field serialVersionUID J
|
||||
public fun <init> (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)V
|
||||
public synthetic fun <init> (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)V
|
||||
public synthetic fun <init> (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;
|
||||
public final fun component2 ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;
|
||||
public final fun component2 ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;
|
||||
public final fun component3 ()Lorg/jetbrains/kotlin/tooling/core/MutableExtras;
|
||||
public final fun copy (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;
|
||||
public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;
|
||||
public final fun copy (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;
|
||||
public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public synthetic fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates;
|
||||
public fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactCoordinates;
|
||||
public fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates;
|
||||
public synthetic fun getExtras ()Lorg/jetbrains/kotlin/tooling/core/Extras;
|
||||
public fun getExtras ()Lorg/jetbrains/kotlin/tooling/core/MutableExtras;
|
||||
public final fun getType ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinSourceDependency$Type;
|
||||
@@ -387,7 +395,7 @@ public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifac
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates : java/io/Serializable {
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordinates : java/io/Serializable, org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates {
|
||||
public static final field serialVersionUID J
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public final fun component1 ()Ljava/lang/String;
|
||||
@@ -405,17 +413,17 @@ public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectCoordin
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency : org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency {
|
||||
public static final field serialVersionUID J
|
||||
public fun <init> (Ljava/lang/String;Ljava/io/File;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/io/File;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Ljava/lang/String;
|
||||
public final fun component2 ()Ljava/io/File;
|
||||
public final fun component2 ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public final fun component3 ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;
|
||||
public final fun component4 ()Lorg/jetbrains/kotlin/tooling/core/MutableExtras;
|
||||
public final fun copy (Ljava/lang/String;Ljava/io/File;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;
|
||||
public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;Ljava/lang/String;Ljava/io/File;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;
|
||||
public final fun copy (Ljava/lang/String;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;
|
||||
public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;Ljava/lang/String;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Lorg/jetbrains/kotlin/tooling/core/MutableExtras;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinResolvedBinaryDependency;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getBinaryFile ()Ljava/io/File;
|
||||
public final fun getBinaryType ()Ljava/lang/String;
|
||||
public final fun getClasspath ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;
|
||||
public synthetic fun getCoordinates ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates;
|
||||
public synthetic fun getExtras ()Lorg/jetbrains/kotlin/tooling/core/Extras;
|
||||
@@ -541,3 +549,15 @@ public final class org/jetbrains/kotlin/gradle/idea/tcs/extras/PrimitiveExtrasKt
|
||||
public static final fun setNativeStdlib (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency;Z)V
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/extras/ProjectArtifactClasspathExtrasKt {
|
||||
public static final fun getArtifactsClasspath (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public static final fun getProjectArtifactsClasspathKey ()Lorg/jetbrains/kotlin/tooling/core/Extras$Key;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/idea/tcs/extras/SourcesAndDocumentationExtrasKt {
|
||||
public static final fun getDocumentationClasspath (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public static final fun getDocumentationClasspathKey ()Lorg/jetbrains/kotlin/tooling/core/Extras$Key;
|
||||
public static final fun getSourcesClasspath (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryDependency;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinClasspath;
|
||||
public static final fun getSourcesClasspathKey ()Lorg/jetbrains/kotlin/tooling/core/Extras$Key;
|
||||
}
|
||||
|
||||
|
||||
+7
-10
@@ -7,15 +7,18 @@ package org.jetbrains.kotlin.gradle.idea.tcs
|
||||
|
||||
import org.jetbrains.kotlin.tooling.core.MutableExtras
|
||||
import org.jetbrains.kotlin.tooling.core.mutableExtrasOf
|
||||
import java.io.File
|
||||
|
||||
sealed class IdeaKotlinBinaryDependency : IdeaKotlinDependency {
|
||||
abstract override val coordinates: IdeaKotlinBinaryCoordinates?
|
||||
|
||||
companion object {
|
||||
const val KOTLIN_COMPILE_BINARY_TYPE = "KOTLIN_COMPILE"
|
||||
}
|
||||
}
|
||||
|
||||
data class IdeaKotlinResolvedBinaryDependency(
|
||||
val binaryType: String,
|
||||
val binaryFile: File,
|
||||
val classpath: IdeaKotlinClasspath,
|
||||
override val coordinates: IdeaKotlinBinaryCoordinates?,
|
||||
override val extras: MutableExtras = mutableExtrasOf()
|
||||
) : IdeaKotlinBinaryDependency() {
|
||||
@@ -34,11 +37,5 @@ data class IdeaKotlinUnresolvedBinaryDependency(
|
||||
}
|
||||
}
|
||||
|
||||
val IdeaKotlinResolvedBinaryDependency.isClasspathBinaryType
|
||||
get() = this.binaryType == IdeaKotlinDependency.CLASSPATH_BINARY_TYPE
|
||||
|
||||
val IdeaKotlinResolvedBinaryDependency.isSourcesBinaryType
|
||||
get() = this.binaryType == IdeaKotlinDependency.SOURCES_BINARY_TYPE
|
||||
|
||||
val IdeaKotlinResolvedBinaryDependency.isDocumentationBinaryType
|
||||
get() = this.binaryType == IdeaKotlinDependency.DOCUMENTATION_BINARY_TYPE
|
||||
val IdeaKotlinResolvedBinaryDependency.isKotlinCompileBinaryType
|
||||
get() = this.binaryType == IdeaKotlinBinaryDependency.KOTLIN_COMPILE_BINARY_TYPE
|
||||
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.idea.tcs
|
||||
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
fun IdeaKotlinClasspath(files: Iterable<File>): IdeaKotlinClasspath = IdeaKotlinClasspath.from(files)
|
||||
|
||||
fun IdeaKotlinClasspath(vararg files: File): IdeaKotlinClasspath = IdeaKotlinClasspath.from(files.toList())
|
||||
|
||||
fun IdeaKotlinClasspath(): IdeaKotlinClasspath = IdeaKotlinClasspath.empty()
|
||||
|
||||
@IdeaKotlinModel
|
||||
class IdeaKotlinClasspath private constructor(private val files: MutableSet<File> = mutableSetOf()) : MutableSet<File>, Serializable {
|
||||
override val size: Int
|
||||
get() = files.size
|
||||
|
||||
override fun add(element: File): Boolean {
|
||||
return files.add(normalise(element))
|
||||
}
|
||||
|
||||
override fun addAll(elements: Collection<File>): Boolean {
|
||||
return files.addAll(elements.map(::normalise))
|
||||
}
|
||||
|
||||
override fun clear() {
|
||||
files.clear()
|
||||
}
|
||||
|
||||
override fun contains(element: File): Boolean {
|
||||
return files.contains(normalise(element))
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<File>): Boolean {
|
||||
return files.containsAll(elements.map(::normalise).toSet())
|
||||
}
|
||||
|
||||
override fun isEmpty(): Boolean {
|
||||
return files.isEmpty()
|
||||
}
|
||||
|
||||
override fun iterator(): MutableIterator<File> {
|
||||
return files.iterator()
|
||||
}
|
||||
|
||||
override fun remove(element: File): Boolean {
|
||||
return files.remove(normalise(element))
|
||||
}
|
||||
|
||||
override fun removeAll(elements: Collection<File>): Boolean {
|
||||
return files.removeAll(elements.map(::normalise).toSet())
|
||||
}
|
||||
|
||||
override fun retainAll(elements: Collection<File>): Boolean {
|
||||
return files.retainAll(elements.map(::normalise).toSet())
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is IdeaKotlinClasspath) return false
|
||||
return files == other.files
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return files.hashCode()
|
||||
}
|
||||
|
||||
internal companion object {
|
||||
private const val serialVersionUID = 0L
|
||||
|
||||
fun normalise(file: File): File {
|
||||
return file.absoluteFile.normalize()
|
||||
}
|
||||
|
||||
fun from(files: Iterable<File>): IdeaKotlinClasspath {
|
||||
return IdeaKotlinClasspath(files.map(::normalise).toMutableSet())
|
||||
}
|
||||
|
||||
fun from(file: File): IdeaKotlinClasspath {
|
||||
return IdeaKotlinClasspath(mutableSetOf(normalise(file)))
|
||||
}
|
||||
|
||||
fun empty() = IdeaKotlinClasspath(mutableSetOf())
|
||||
}
|
||||
}
|
||||
-6
@@ -11,10 +11,4 @@ import java.io.Serializable
|
||||
@IdeaKotlinModel
|
||||
sealed interface IdeaKotlinDependency : Serializable, HasMutableExtras {
|
||||
val coordinates: IdeaKotlinDependencyCoordinates?
|
||||
|
||||
companion object {
|
||||
const val CLASSPATH_BINARY_TYPE = "org.jetbrains.kotlin.gradle.idea.tcs.IdeDependency.classpathBinaryType"
|
||||
const val SOURCES_BINARY_TYPE = "org.jetbrains.kotlin.gradle.idea.tcs.IdeDependency.sourcesBinaryType"
|
||||
const val DOCUMENTATION_BINARY_TYPE = "org.jetbrains.kotlin.gradle.idea.tcs.IdeDependency.documentationBinaryType"
|
||||
}
|
||||
}
|
||||
|
||||
+15
-15
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.idea.tcs
|
||||
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
@IdeaKotlinModel
|
||||
@@ -26,6 +25,21 @@ data class IdeaKotlinBinaryCoordinates(
|
||||
}
|
||||
}
|
||||
|
||||
@IdeaKotlinModel
|
||||
data class IdeaKotlinProjectCoordinates(
|
||||
val buildId: String,
|
||||
val projectPath: String,
|
||||
val projectName: String
|
||||
) : Serializable, IdeaKotlinDependencyCoordinates {
|
||||
override fun toString(): String {
|
||||
return "${buildId.takeIf { it != ":" }?.plus(":").orEmpty()}$projectPath"
|
||||
}
|
||||
|
||||
internal companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
data class IdeaKotlinSourceCoordinates(
|
||||
val project: IdeaKotlinProjectCoordinates,
|
||||
val sourceSetName: String
|
||||
@@ -43,17 +57,3 @@ data class IdeaKotlinSourceCoordinates(
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
data class IdeaKotlinProjectArtifactCoordinates(
|
||||
val project: IdeaKotlinProjectCoordinates,
|
||||
val artifactFile: File
|
||||
) : IdeaKotlinDependencyCoordinates {
|
||||
|
||||
override fun toString(): String {
|
||||
return "$project${File.pathSeparator}$artifactFile"
|
||||
}
|
||||
|
||||
internal companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.tooling.core.*
|
||||
|
||||
data class IdeaKotlinProjectArtifactDependency(
|
||||
val type: IdeaKotlinSourceDependency.Type,
|
||||
override val coordinates: IdeaKotlinProjectArtifactCoordinates,
|
||||
override val coordinates: IdeaKotlinProjectCoordinates,
|
||||
override val extras: MutableExtras = mutableExtrasOf()
|
||||
) : IdeaKotlinDependency {
|
||||
|
||||
@@ -22,7 +22,7 @@ data class IdeaKotlinProjectArtifactDependency(
|
||||
type = type,
|
||||
extras = extras.toMutableExtras(),
|
||||
coordinates = IdeaKotlinSourceCoordinates(
|
||||
project = coordinates.project,
|
||||
project = coordinates,
|
||||
sourceSetName = sourceSetName
|
||||
)
|
||||
)
|
||||
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.idea.tcs
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
@IdeaKotlinModel
|
||||
data class IdeaKotlinProjectCoordinates(
|
||||
val buildId: String,
|
||||
val projectPath: String,
|
||||
val projectName: String
|
||||
) : Serializable {
|
||||
override fun toString(): String {
|
||||
return "${buildId.takeIf { it != ":" }?.plus(":").orEmpty()}$projectPath"
|
||||
}
|
||||
|
||||
internal companion object {
|
||||
const val serialVersionUID = 0L
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -40,4 +40,4 @@ val isCommonizedKey = extrasKeyOf<Boolean>("isCommonized")
|
||||
/**
|
||||
* Marks dependencies produced by the commonizer
|
||||
*/
|
||||
var IdeaKotlinBinaryDependency.isCommonized by isCommonizedKey.readWriteProperty.notNull(false)
|
||||
var IdeaKotlinBinaryDependency.isCommonized by isCommonizedKey.readWriteProperty.notNull(false)
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.idea.tcs.extras
|
||||
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinClasspath
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinProjectArtifactDependency
|
||||
import org.jetbrains.kotlin.tooling.core.extrasKeyOf
|
||||
import org.jetbrains.kotlin.tooling.core.lazyProperty
|
||||
|
||||
val projectArtifactsClasspathKey = extrasKeyOf<IdeaKotlinClasspath>("artifactsClasspath")
|
||||
|
||||
val IdeaKotlinProjectArtifactDependency.artifactsClasspath by projectArtifactsClasspathKey.lazyProperty { IdeaKotlinClasspath() }
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.idea.tcs.extras
|
||||
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinClasspath
|
||||
import org.jetbrains.kotlin.tooling.core.extrasKeyOf
|
||||
import org.jetbrains.kotlin.tooling.core.lazyProperty
|
||||
|
||||
/* Sources (-sources.jar) */
|
||||
|
||||
val sourcesClasspathKey = extrasKeyOf<IdeaKotlinClasspath>("sourcesClasspath")
|
||||
|
||||
/**
|
||||
* Contains all resolved -sources.jar artifacts associated with this dependency
|
||||
*/
|
||||
val IdeaKotlinBinaryDependency.sourcesClasspath by sourcesClasspathKey.lazyProperty { IdeaKotlinClasspath() }
|
||||
|
||||
/* Documentation (-javadoc.jar) */
|
||||
|
||||
val documentationClasspathKey = extrasKeyOf<IdeaKotlinClasspath>("documentationClasspath")
|
||||
|
||||
/**
|
||||
* Contains all resolved -javadoc.jar artifacts associated with this dependency
|
||||
*/
|
||||
val IdeaKotlinBinaryDependency.documentationClasspath by documentationClasspathKey.lazyProperty { IdeaKotlinClasspath() }
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.idea.test.tcs
|
||||
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinClasspath
|
||||
import java.io.File
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNotEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
class IdeaKotlinClasspathTest {
|
||||
|
||||
@Test
|
||||
fun `test - equals`() {
|
||||
val first = IdeaKotlinClasspath()
|
||||
val second = IdeaKotlinClasspath()
|
||||
|
||||
assertEquals(first, second)
|
||||
|
||||
first.add(File("a"))
|
||||
assertNotEquals(first, second)
|
||||
|
||||
second.add(File("a").absoluteFile)
|
||||
assertEquals(first, second)
|
||||
|
||||
assertEquals(first, IdeaKotlinClasspath(File("a")))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - stores files absolute`() {
|
||||
val classpath = IdeaKotlinClasspath()
|
||||
classpath.add(File("test"))
|
||||
|
||||
assertNotEquals(classpath.toSet(), setOf(File("test")))
|
||||
assertEquals(classpath.toSet(), setOf(File("test").absoluteFile))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - contains file - relative and absolute`() {
|
||||
val classpath = IdeaKotlinClasspath()
|
||||
classpath.add(File("test"))
|
||||
|
||||
assertTrue(File("test") in classpath)
|
||||
assertTrue(File("test").absoluteFile in classpath)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - remove file - relative and absolute`() {
|
||||
val classpath = IdeaKotlinClasspath()
|
||||
classpath.add(File("test"))
|
||||
|
||||
assertTrue(classpath.isNotEmpty())
|
||||
classpath.remove(File("test"))
|
||||
assertTrue(classpath.isEmpty())
|
||||
|
||||
classpath.add(File("test"))
|
||||
assertTrue(classpath.isNotEmpty())
|
||||
classpath.remove(File("test").absoluteFile)
|
||||
assertTrue(classpath.isEmpty())
|
||||
}
|
||||
}
|
||||
+4
-3
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.idea.testFixtures.tcs
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinProjectArtifactDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.extras.artifactsClasspath
|
||||
import java.io.File
|
||||
|
||||
internal class IdeaKotlinProjectArtifactDependencyMatcher(
|
||||
@@ -22,9 +23,9 @@ internal class IdeaKotlinProjectArtifactDependencyMatcher(
|
||||
override fun matches(dependency: IdeaKotlinDependency): Boolean {
|
||||
if (dependency !is IdeaKotlinProjectArtifactDependency) return false
|
||||
return dependency.type == type &&
|
||||
dependency.coordinates.project.buildId == buildId &&
|
||||
dependency.coordinates.project.projectPath == projectPath &&
|
||||
artifactFilePath.matches(dependency.coordinates.artifactFile)
|
||||
dependency.coordinates.buildId == buildId &&
|
||||
dependency.coordinates.projectPath == projectPath &&
|
||||
dependency.artifactsClasspath.any { artifactFilePath.matches(it) }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+8
-10
@@ -37,21 +37,19 @@ object TestIdeaKotlinInstances {
|
||||
sourceSetName = "mySourceSetName"
|
||||
)
|
||||
|
||||
|
||||
val simpleProjectArtifactCoordinates = IdeaKotlinProjectArtifactCoordinates(
|
||||
project = simpleProjectCoordinates,
|
||||
artifactFile = File("myArtifactFile.klib")
|
||||
)
|
||||
|
||||
val simpleUnresolvedBinaryDependency = IdeaKotlinUnresolvedBinaryDependency(
|
||||
cause = "myCause",
|
||||
coordinates = simpleBinaryCoordinates,
|
||||
extras = extrasWithIntAndStrings.toMutableExtras()
|
||||
)
|
||||
|
||||
val simpleClasspath = IdeaKotlinClasspath(setOf(File("myFirstFile.klib"), File("mySecondFile.jar").absoluteFile))
|
||||
|
||||
val emptyClasspath = IdeaKotlinClasspath()
|
||||
|
||||
val simpleResolvedBinaryDependency = IdeaKotlinResolvedBinaryDependency(
|
||||
binaryType = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE,
|
||||
binaryFile = File("myBinaryFile.klib"),
|
||||
binaryType = IdeaKotlinBinaryDependency.KOTLIN_COMPILE_BINARY_TYPE,
|
||||
classpath = simpleClasspath,
|
||||
coordinates = simpleBinaryCoordinates,
|
||||
extras = extrasWithIntAndStrings.toMutableExtras()
|
||||
)
|
||||
@@ -63,8 +61,8 @@ object TestIdeaKotlinInstances {
|
||||
)
|
||||
|
||||
val simpleProjectArtifactDependency = IdeaKotlinProjectArtifactDependency(
|
||||
coordinates = simpleProjectArtifactCoordinates,
|
||||
coordinates = simpleProjectCoordinates,
|
||||
type = IdeaKotlinSourceDependency.Type.Regular,
|
||||
extras = extrasWithIntAndStrings.toMutableExtras()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user