package Ġcom . jetbrains . edu . learning . handlers . rename Ċ Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . options . ConfigurationException Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . Psi Directory Ċ import Ġcom . intellij . psi . Psi Directory Container Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . refactor ing . rename . Rename Dialog Ċ import Ġcom . intellij . refactor ing . rename . Rename Psi File Processor Ċ import Ġcom . jetbrains . edu . course creator . CC Study Item Path Input Validator Ċ import Ġcom . jetbrains . edu . course creator . present able Title Name Ċ import Ġcom . jetbrains . edu . learning . Refresh Cause Ċ import Ġcom . jetbrains . edu . learning . course Ċ import Ġcom . jetbrains . edu . learning . course Dir Ċ import Ġcom . jetbrains . edu . learning . course Format . Course Ċ import Ġcom . jetbrains . edu . learning . course Format . Study Item Ċ import Ġcom . jetbrains . edu . learning . course Format . ext . configur ator Ċ import Ġcom . jetbrains . edu . learning . course Format . ext . study ItemType Ċ import Ġcom . jetbrains . edu . learning . messages . E du Core Bundle Ċ import Ġcom . jetbrains . edu . learning . yaml . Yaml Format Synchron izer Ċ Ċ abstract Ġclass ĠE du Study Item Rename Processor Ġ: ĠRename Psi File Processor () Ġ{ ĊĊĠ Ġoverride Ġfun Ġcan Process Element ( element : ĠPsi Element ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ(!( element Ġis ĠPsi Directory Ġ|| Ġelement Ġis ĠPsi Directory Container )) Ġreturn Ġfalse ĊĠĠĠ Ġval Ġproject Ġ= Ġelement . project ĊĠĠĠ Ġval Ġcourse Ġ= Ġproject . course Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġfile Ġ= Ġget Directory ( element . to Psi Directory (), Ġcourse ). virtual File ĊĠĠĠ Ġreturn Ġget Study Item ( project , Ġcourse , Ġfile ) Ġ!= Ġnull ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Rename Dialog ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġelement : ĠPsi Element , ĊĠĠĠ Ġname Suggestion Context : ĠPsi Element ?, ĊĠĠĠ Ġeditor : ĠEditor ? ĊĠ Ġ): ĠRename Dialog Ġ{ ĊĠĠĠ Ġval Ġcourse Ġ= Ġproject . course Ġ?: Ġreturn Ġsuper . create Rename Dialog ( project , Ġelement , Ġname Suggestion Context , Ġeditor ) ĊĠĠĠ Ġval Ġfile Ġ= Ġget Directory ( element . to Psi Directory (), Ġcourse ). virtual File ĊĠĠĠ Ġval Ġitem Ġ= Ġget Study Item ( project , Ġcourse , Ġfile ) Ġ?: Ġreturn Ġsuper . create Rename Dialog ( project , Ġelement , Ġname Suggestion Context , Ġeditor ) ĊĠĠĠ Ġreturn Ġcreate Rename Dialog ( project , Ġelement , Ġname Suggestion Context , Ġeditor , ĠFactory ( item )) ĊĠ Ġ} ĊĊĠ Ġprotected Ġopen Ġfun Ġget Directory ( element : ĠPsi Element , Ġcourse : ĠCourse ): ĠPsi Directory Ġ= Ġelement . to Psi Directory () ĊĊĠ Ġprotected Ġabstract Ġfun Ġget Study Item ( project : ĠProject , Ġcourse : ĠCourse , Ġfile : ĠVirtual File ): ĠStudy Item ? ĊĊĠ Ġprotected Ġfun ĠPsi Element . to Psi Directory (): ĠPsi Directory Ġ{ ĊĠĠĠ Ġreturn Ġ( this Ġas ? ĠPsi Directory Container )?. directories ?. first () Ġ?: Ġ( this Ġas ĠPsi Directory ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠFactory ( private Ġval Ġitem : ĠStudy Item ) Ġ: ĠRename Dialog Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Rename Dialog ( ĊĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠ Ġelement : ĠPsi Element , ĊĠĠĠĠĠ Ġname Suggestion Context : ĠPsi Element ?, ĊĠĠĠĠĠ Ġeditor : ĠEditor ? ĊĠĠĠ Ġ): ĠE du Rename Dialog Base Ġ{ ĊĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠE du Rename Dialog Base ( project , Ġelement , Ġname Suggestion Context , Ġeditor ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠE du Core Bundle . message (" action . rename ", Ġitem . study ItemType . present able Title Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Rename ( new Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġsuper . perform Rename ( new Name ) ĊĠĠĠĠĠĠĠĠĠ Ġitem . name Ġ= ĠnewName ĊĠĠĠĠĠĠĠĠĠ ĠYaml Format Synchron izer . save Item ( item . parent ) ĊĠĠĠĠĠĠĠĠĠ Ġitem . course . configur ator ?. course Builder ?. refresh Project ( project , ĠRefresh Cause . STRUCTURE _ MODI FIED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( ConfigurationException :: class ) ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Run () Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . course . is Study ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠConfiguration Exception ( E du Core Bundle . message (" error . invalid . rename . message ")) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġval Ġitem Dir Ġ= Ġitem . get Dir ( project . course Dir ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġvalidator Ġ= ĠCC Study Item Path Input Validator ( project , Ġitem . course , Ġitem . study ItemType , Ġitem Dir ?. parent , Ġitem . name ) ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ(! validator . check Input ( new Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠConfiguration Exception ( validator . getError Text ( new Name )) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ