[kpm] IdeaKpmProjectContainer: Add documentation
^KT-52568 Verification Pending
This commit is contained in:
committed by
Space
parent
0b7c1f42f6
commit
fc3da93625
+15
@@ -17,6 +17,21 @@ fun IdeaKpmProjectContainer(project: IdeaKpmProject): IdeaKpmProjectInstanceCont
|
|||||||
return IdeaKpmProjectInstanceContainerImpl(project)
|
return IdeaKpmProjectInstanceContainerImpl(project)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper around [IdeaKpmProject] which can store the project in two forms
|
||||||
|
* - binary : [IdeaKpmProjectBinaryContainer]
|
||||||
|
* - instance: [IdeaKpmProjectInstanceContainer]
|
||||||
|
*
|
||||||
|
* This class is used to transport the [IdeaKpmProject] into the IDE, where it needs
|
||||||
|
* to take those two forms, while keeping the same class as key on IJ side.
|
||||||
|
*
|
||||||
|
* This class overcomes a limitation in IntelliJ's SerializationService, which basically
|
||||||
|
* requires a single class.
|
||||||
|
*
|
||||||
|
* When this container is requested from a Model Builder, it will
|
||||||
|
* return the binary form. This gets deserialized by the SerializationService and transformed
|
||||||
|
* into [IdeaKpmProjectInstanceContainer].
|
||||||
|
*/
|
||||||
sealed interface IdeaKpmProjectContainer<T : Any> : Serializable {
|
sealed interface IdeaKpmProjectContainer<T : Any> : Serializable {
|
||||||
val project: T
|
val project: T
|
||||||
val binaryOrNull: ByteArray?
|
val binaryOrNull: ByteArray?
|
||||||
|
|||||||
Reference in New Issue
Block a user