package Ġorg . move . lang . core . stubs Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . psi . stubs .* Ċ import Ġorg . move . lang . core . psi . Mv Element Ċ Ċ open Ġclass ĠPlace holder Stub ( ĊĠĠĠ Ġparent : ĠStub Element < *> ?, ĊĠĠĠ Ġelement Type : ĠI Stub ElementType < *, Ġ* >, Ċ ) Ġ: ĠStub Base < Mv Element >( parent , Ġelement Type ) Ġ{ ĊĊĠĠĠ Ġopen Ġclass ĠType < Psi T Ġ: ĠM v Element >( ĊĠĠĠĠĠĠĠ Ġdebug Name : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpsi Contr uctor : Ġ( Placeholder Stub , ĠI Stub ElementType < *, Ġ* >) Ġ-> ĠPsi T , ĊĠĠĠ Ġ) Ġ: ĠM v Stub ElementType < Placeholder Stub , ĠPsi T >( debug Name ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshould Create Stub ( node : ĠAST Node ): ĠBoolean Ġ= Ġcreate Stub If Parent Is Stub ( node ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( data Stream : ĠStub InputStream , Ġparent Stub : ĠStub Element < *> ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlace holder Stub ( parent Stub , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( stub : ĠPlace holder Stub , Ġdata Stream : ĠStub OutputStream ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Psi ( stub : ĠPlace holder Stub ) Ġ= Ġpsi Contr uctor ( stub , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Stub ( psi : ĠPsi T , Ġparent Stub : ĠStub Element < *> ?) Ġ= ĠPlace holder Stub ( parent Stub , Ġthis ) ĊĠĠĠ Ġ} Ċ } Ċ