[KPM] :kotlin-gradle-plugin-idea Make entities data classes
This is done to benefit from .equals and hashcode functions. The goal is to keep .copy methods stable whereas using any .component* function shall be avoided ^KT-51262
This commit is contained in:
committed by
Space
parent
e91785ba39
commit
c124c86b0f
@@ -1,13 +1,24 @@
|
|||||||
# Kotlin Gradle Plugin Models shared between IDEA import and KGP
|
# Kotlin Gradle Plugin Models shared between IDEA import and KGP
|
||||||
The classes defined in this module will be available inside the Kotlin Gradle Plugin (KGP)
|
|
||||||
|
The classes defined in this module will be available inside the Kotlin Gradle Plugin (KGP)
|
||||||
as well as in the IDE import (GradleProject).
|
as well as in the IDE import (GradleProject).
|
||||||
|
|
||||||
## Binary Compatibility:
|
## Binary Compatibility:
|
||||||
|
|
||||||
Binary compatibility can be tested by
|
Binary compatibility can be tested by
|
||||||
`./gradlew :tools:binary-compatibility-validator:clean :tools:binary-compatibility-validator:test`
|
`./gradlew :tools:binary-compatibility-validator:clean :tools:binary-compatibility-validator:test`
|
||||||
|
|
||||||
Binary incompatible changes have to go through a proper deprecation cycle after releases
|
Binary incompatible changes have to go through a proper deprecation cycle after releases
|
||||||
|
|
||||||
### Unstable APIs / KotlinGradlePluginApi
|
### Unstable APIs / KotlinGradlePluginApi
|
||||||
Some APIs are marked with 'KotlinGradlePluginApi' which means, that those are not kept binary compatible and are considered 'unstable'
|
|
||||||
from the IDEA perspective. Typically constructors for models are marked like this
|
Some APIs are marked with 'KotlinGradlePluginApi' which means, that those are not kept binary compatible and are considered 'unstable' from
|
||||||
|
the IDEA perspective. Typically constructors for models are marked like this
|
||||||
|
|
||||||
|
Non Stable by default:
|
||||||
|
|
||||||
|
- data class componentX methods
|
||||||
|
|
||||||
|
Kept Stable
|
||||||
|
|
||||||
|
- data class .copy methods
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ interface IdeaKotlinFragment : Serializable {
|
|||||||
val resourceDirectories: Collection<IdeaKotlinResourceDirectory>
|
val resourceDirectories: Collection<IdeaKotlinResourceDirectory>
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinFragmentImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinFragmentImpl @KotlinGradlePluginApi constructor(
|
||||||
override val name: String,
|
override val name: String,
|
||||||
override val languageSettings: IdeaKotlinLanguageSettings?,
|
override val languageSettings: IdeaKotlinLanguageSettings?,
|
||||||
override val dependencies: Collection<IdeaKotlinFragmentDependency>,
|
override val dependencies: Collection<IdeaKotlinFragmentDependency>,
|
||||||
|
|||||||
+3
-1
@@ -5,4 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.kpm.idea
|
package org.jetbrains.kotlin.gradle.kpm.idea
|
||||||
|
|
||||||
interface IdeaKotlinFragmentDependency
|
import java.io.Serializable
|
||||||
|
|
||||||
|
interface IdeaKotlinFragmentDependency : Serializable
|
||||||
|
|||||||
+3
-2
@@ -6,8 +6,9 @@
|
|||||||
package org.jetbrains.kotlin.gradle.kpm.idea
|
package org.jetbrains.kotlin.gradle.kpm.idea
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.io.Serializable
|
||||||
|
|
||||||
interface IdeaKotlinLanguageSettings {
|
interface IdeaKotlinLanguageSettings : Serializable {
|
||||||
val languageVersion: String?
|
val languageVersion: String?
|
||||||
val apiVersion: String?
|
val apiVersion: String?
|
||||||
val isProgressiveMode: Boolean
|
val isProgressiveMode: Boolean
|
||||||
@@ -18,7 +19,7 @@ interface IdeaKotlinLanguageSettings {
|
|||||||
val freeCompilerArgs: Collection<String>
|
val freeCompilerArgs: Collection<String>
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinLanguageSettingsImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinLanguageSettingsImpl @KotlinGradlePluginApi constructor(
|
||||||
override val languageVersion: String?,
|
override val languageVersion: String?,
|
||||||
override val apiVersion: String?,
|
override val apiVersion: String?,
|
||||||
override val isProgressiveMode: Boolean,
|
override val isProgressiveMode: Boolean,
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ interface IdeaKotlinModule : Serializable {
|
|||||||
val fragments: Collection<IdeaKotlinFragment>
|
val fragments: Collection<IdeaKotlinFragment>
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinModuleImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinModuleImpl @KotlinGradlePluginApi constructor(
|
||||||
override val moduleIdentifier: IdeaKotlinModuleIdentifier,
|
override val moduleIdentifier: IdeaKotlinModuleIdentifier,
|
||||||
override val fragments: Collection<IdeaKotlinFragment>
|
override val fragments: Collection<IdeaKotlinFragment>
|
||||||
) : IdeaKotlinModule
|
) : IdeaKotlinModule
|
||||||
|
|||||||
+2
-2
@@ -21,13 +21,13 @@ interface IdeaKotlinMavenModuleIdentifier : IdeaKotlinModuleIdentifier {
|
|||||||
val name: String
|
val name: String
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinLocalModuleIdentifierImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinLocalModuleIdentifierImpl @KotlinGradlePluginApi constructor(
|
||||||
override val moduleClassifier: String?,
|
override val moduleClassifier: String?,
|
||||||
override val buildId: String,
|
override val buildId: String,
|
||||||
override val projectId: String
|
override val projectId: String
|
||||||
) : IdeaKotlinLocalModuleIdentifier
|
) : IdeaKotlinLocalModuleIdentifier
|
||||||
|
|
||||||
class IdeaKotlinMavenModuleIdentifierImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinMavenModuleIdentifierImpl @KotlinGradlePluginApi constructor(
|
||||||
override val moduleClassifier: String?,
|
override val moduleClassifier: String?,
|
||||||
override val group: String,
|
override val group: String,
|
||||||
override val name: String
|
override val name: String
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ interface IdeaKotlinProjectModel : Serializable {
|
|||||||
val modules: List<IdeaKotlinModule>
|
val modules: List<IdeaKotlinModule>
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinProjectModelImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinProjectModelImpl @KotlinGradlePluginApi constructor(
|
||||||
override val coreLibrariesVersion: String,
|
override val coreLibrariesVersion: String,
|
||||||
override val explicitApiModeCliOption: String?,
|
override val explicitApiModeCliOption: String?,
|
||||||
override val kotlinNativeHome: File,
|
override val kotlinNativeHome: File,
|
||||||
|
|||||||
+1
-1
@@ -12,6 +12,6 @@ interface IdeaKotlinResourceDirectory : Serializable {
|
|||||||
val file: File
|
val file: File
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinResourceDirectoryImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinResourceDirectoryImpl @KotlinGradlePluginApi constructor(
|
||||||
override val file: File
|
override val file: File
|
||||||
) : IdeaKotlinResourceDirectory
|
) : IdeaKotlinResourceDirectory
|
||||||
|
|||||||
+1
-1
@@ -12,6 +12,6 @@ interface IdeaKotlinSourceDirectory : Serializable {
|
|||||||
val file: File
|
val file: File
|
||||||
}
|
}
|
||||||
|
|
||||||
class IdeaKotlinSourceDirectoryImpl @KotlinGradlePluginApi constructor(
|
data class IdeaKotlinSourceDirectoryImpl @KotlinGradlePluginApi constructor(
|
||||||
override val file: File,
|
override val file: File,
|
||||||
) : IdeaKotlinSourceDirectory
|
) : IdeaKotlinSourceDirectory
|
||||||
|
|||||||
Reference in New Issue
Block a user