/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 7 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . intellij . plugins . h cl . refactor ing Ċ Ċ import Ġcom . intellij . patterns . Element Pattern Ċ import Ġcom . intellij . patterns . Platform Patterns . psi Element Ċ import Ġcom . intellij . patterns . Standard Patterns . or Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . refactor ing . rename . Rename Input Validator Ċ import Ġcom . intellij . util . Processing Context Ċ import Ġorg . intellij . plugins . h cl . H CL Lexer Ċ import Ġorg . intellij . plugins . h cl . H CL Parser Definition Ċ import Ġorg . intellij . plugins . h cl . psi . H CL Identifier Ċ import Ġorg . intellij . plugins . h cl . psi . H CL StringLiteral ĊĊ Ċ class ĠH CLE lement Rename Validator Ġ: ĠRename Input Validator Ġ{ ĊĠ Ġoverride Ġfun Ġget Pattern (): ĠElement Pattern < out ĠPsi Element > Ġ{ ĊĠĠĠ Ġreturn Ġor ( ĊĠĠĠĠĠĠĠ Ġpsi Element ( H CL StringLiteral :: class . java ), ĊĠĠĠĠĠĠĠ Ġpsi Element ( H CL Identifier :: class . java ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġlexer Ġ= ĠH CL Lexer () ĊĊĠ Ġoverride Ġfun Ġis Input Valid ( name : ĠString ?, Ġelement : ĠPsi Element ?, Ġcontext : ĠProcessing Context ?): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( name Ġ== Ġnull Ġ|| Ġelement Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ(! pattern . accept s ( element )) Ġreturn Ġfalse ĊĠĠĠ Ġ@ Suppress (" NAME _ SH ADO WING ") ĊĠĠĠ Ġvar Ġname : ĠString Ġ= Ġname ĊĠĠĠ Ġif Ġ( element Ġis ĠH CL StringLiteral ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! name . startsWith (' \' ') Ġ&& Ġ! name . startsWith (' \" ')) Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ"\"" Ġ+ Ġname ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġif Ġ(! name . endsWith (' \' ') Ġ&& Ġ! name . endsWith (' \" ')) Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ+= Ġ"\"" ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġsynchronized ( lexer ) Ġ{ ĊĠĠĠĠĠ Ġlexer . start ( name ) ĊĠĠĠĠĠ Ġreturn Ġlexer . token End Ġ== Ġname . length Ġ&& ĠH CL Parser Definition . IDENT IFY ING _ LITERAL S . contains ( lexer . token Type ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ