package Ġtop . w uh ao j ie . se . process Ċ Ċ import Ġcom . intellij . lang . xml . XML Language Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi . Psi Manager Ċ import Ġcom . intellij . psi . XmlElement Factory Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . intellij . psi . xml . Xml Comment Ċ import Ġcom . intellij . psi . xml . Xml File Ċ import Ġcom . intellij . psi . xml . Xml Tag Ċ import Ġtop . w uh ao j ie . se . entity . Task Holder Ċ Ċ class ĠStrings Writer ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġproject : ĠProject Ċ ) Ġ: ĠAbs Writer () Ġ{ ĊĊĊĠĠĠ Ġprivate Ġfun Ġopen Strings File ( task Holder : ĠTask Holder ): ĠXml File ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvirtual File Ġ= Ġtask Holder . des File Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠPsi Manager . getInstance ( project ). find File ( virtual File ) Ġas ? ĠXml File Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwrite Comment ( root Tag : ĠXml Tag , Ġtext : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠXml Element Factory . getInstance ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= Ġfactory . create Tag FromText ("< comment ><!-- Ġ$ text Ġ--></ comment >", ĠXML Language . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġval Ġxml Comment Ġ= ĠPsi Tree Util . getChild OfType ( container , ĠXml Comment :: class . java ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġroot Tag . add ( xml Comment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwrite Content ( root Tag : ĠXml Tag , Ġtask Holder : ĠTask Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfields Ġ= Ġtask Holder . selected Fields () ĊĠĠĠĠĠĠĠ Ġfor Ġ( field Ġin Ġfields ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Tag Ġ= Ġroot Tag . create Child Tag (" string ", Ġ"", Ġfield . source , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Tag . setAttribute (" name ", Ġfield . result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Tag . add ( child Tag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġprocess ( task Holder : ĠTask Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( task Holder . selected Fields (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsave All File () ĊĠĠĠĠĠĠĠ Ġval Ġxml File Ġ= Ġopen Strings File ( task Holder ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġroot Tag Ġ= Ġxml File . root Tag Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġwrite Comment ( root Tag , Ġtask Holder . desc Tag ) ĊĠĠĠĠĠĠĠ Ġwrite Content ( root Tag , Ġtask Holder ) ĊĠĠĠĠĠĠĠ Ġsave All File () ĊĠĠĠ Ġ} Ċ Ċ }