TransactionOnlyPomModel

private class TransactionOnlyPomModel : UserDataHolderBase, PomModel

The one service a core environment is missing before PSI can be written. Every mutation routes through ChangeUtil.prepareAndRunChangeActionPomManager.getModel(project).runTransaction(...), and a core project has none: the real PomModelImpl lives in platform/core-impl, which the embedded compiler does not carry, and nothing in the compiler registers one because the compiler only ever reads PSI.

Running the transaction and stopping there is the point, not a shortcut. What the real implementation adds is PSI change event dispatch and a reparse, and neither is wanted: the reparse is a known cost under repeated edits, and analysis learns that a file changed by polling its modification stamp — which the tree surgery bumps by itself — rather than by listening.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
override val acquire: KeyFMap?
Link copied to clipboard
Link copied to clipboard
override var opaque: KeyFMap?
Link copied to clipboard
override var plain: KeyFMap?
Link copied to clipboard
private val tree: TreeAspect
Link copied to clipboard
@get:TestOnly
open val userDataString: String?
Link copied to clipboard
@get:NotNull
protected open var userMap: @NotNull KeyFMap
Link copied to clipboard
private var value: V?

Functions

Link copied to clipboard
fun accumulateAndGet(x: KeyFMap?, accumulatorFunction: BinaryOperator<KeyFMap?>?): KeyFMap?
Link copied to clipboard
protected open fun changeUserMap(@NotNull oldMap: @NotNull KeyFMap, @NotNull newMap: @NotNull KeyFMap): Boolean
Link copied to clipboard
protected open fun clearUserData()
Link copied to clipboard
protected open fun clone(): Any?
Link copied to clipboard
fun compareAndExchange(expectedValue: KeyFMap?, newValue: KeyFMap?): KeyFMap?
Link copied to clipboard
fun compareAndExchangeAcquire(expectedValue: KeyFMap?, newValue: KeyFMap?): KeyFMap?
Link copied to clipboard
fun compareAndExchangeRelease(expectedValue: KeyFMap?, newValue: KeyFMap?): KeyFMap?
Link copied to clipboard
fun compareAndSet(expectedValue: KeyFMap?, newValue: KeyFMap?): Boolean
Link copied to clipboard
open fun copyCopyableDataTo(@NotNull clone: @NotNull UserDataHolderBase)
Link copied to clipboard
open fun copyUserDataTo(@NotNull other: @NotNull UserDataHolderBase)
Link copied to clipboard
fun get(): KeyFMap?
Link copied to clipboard
fun getAcquire(): KeyFMap?
Link copied to clipboard
fun getAndAccumulate(x: KeyFMap?, accumulatorFunction: BinaryOperator<KeyFMap?>?): KeyFMap?
Link copied to clipboard
fun getAndSet(newValue: KeyFMap?): KeyFMap?
Link copied to clipboard
fun getAndUpdate(updateFunction: UnaryOperator<KeyFMap?>?): KeyFMap?
Link copied to clipboard
open fun <T : Any?> getCopyableUserData(@NotNull key: @NotNull Key<T?>): @UnknownNullability T?
Link copied to clipboard
open override fun <T : PomModelAspect> getModelAspect(aspect: Class<T>): T?
Link copied to clipboard
fun getOpaque(): KeyFMap?
Link copied to clipboard
fun getPlain(): KeyFMap?
Link copied to clipboard
open fun <T : Any?> getUserData(@NotNull key: @NotNull Key<T?>): T?
Link copied to clipboard
@ApiStatus.Experimental
protected open fun isCopyableDataEqual(@NotNull other: @NotNull UserDataHolderBase): Boolean
Link copied to clipboard
fun lazySet(newValue: KeyFMap?)
Link copied to clipboard
open fun <T : Any?> putCopyableUserData(@NotNull key: @NotNull Key<T?>, value: T?)
Link copied to clipboard
open fun <T : Any?> putUserData(@NotNull key: @NotNull Key<T?>, @Nullable value: @Nullable T?)
Link copied to clipboard
@NotNull
open fun <T : Any?> putUserDataIfAbsent(@NotNull key: @NotNull Key<T?>, @NotNull value: @NotNull T & Any): @NotNull T & Any
Link copied to clipboard
open fun <T : Any?> replace(@NotNull key: @NotNull Key<T?>, @Nullable oldValue: @Nullable T?, @Nullable newValue: @Nullable T?): Boolean
Link copied to clipboard
open override fun runTransaction(transaction: PomTransaction)
Link copied to clipboard
fun set(newValue: KeyFMap?)
Link copied to clipboard
fun setOpaque(newValue: KeyFMap?)
Link copied to clipboard
fun setPlain(newValue: KeyFMap?)
Link copied to clipboard
fun setRelease(newValue: KeyFMap?)
Link copied to clipboard
fun updateAndGet(updateFunction: UnaryOperator<KeyFMap?>?): KeyFMap?
Link copied to clipboard
fun weakCompareAndSet(expectedValue: KeyFMap?, newValue: KeyFMap?): Boolean
Link copied to clipboard
fun weakCompareAndSetAcquire(expectedValue: KeyFMap?, newValue: KeyFMap?): Boolean
Link copied to clipboard
fun weakCompareAndSetPlain(expectedValue: KeyFMap?, newValue: KeyFMap?): Boolean
Link copied to clipboard
fun weakCompareAndSetRelease(expectedValue: KeyFMap?, newValue: KeyFMap?): Boolean
Link copied to clipboard
fun weakCompareAndSetVolatile(expectedValue: KeyFMap?, newValue: KeyFMap?): Boolean