/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠHo ch ik ong Ċ Ġ* Ġ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 Ġio . github . ho ch ik ong . kt meta . service . met apl ugin Ċ Ċ import Ġio . github . ho ch ik ong . kt meta . service . device . Device API Ċ Ċ /** Ċ Ġ* ĠAll Ġmetadata Ġplugins Ġshould Ġimplement Ġthis Ġbasic Ġinterface . Ċ Ġ* ĠThis Ġinterface Ġonly Ġsupports Ġthe Ġuse Ġof ĠR DB MS Ġto Ġstore Ġmetadata . Ċ Ġ* Ċ Ġ* ĠImport ant : ĠA Ġsingle Ġmetadata Ġdocument Ġcan Ġonly Ġbe Ġinsert Ġor Ġmarked Ġ' deleted '. Ċ Ġ* ĠIf Ġyou Ġwant Ġto Ġupdate Ġa Ġmetadata Ġdocument Ġitself , Ċ Ġ* Ġyou Ġcan Ġonly Ġmark Ġit Ġ' deleted ' Ġand Ġinsert Ġnew Ġone Ġto Ġoverride Ġthat Ġone . Ċ Ġ* Ċ Ġ* ĠImport ant : ĠAlthough ĠAbstract , ĠCustom ĠTags Ġand ĠPreview Ġbelong Ġto Ġthe Ġmetadata Ġdocument , Ċ Ġ* Ġthey Ġcan Ġbe Ġmodified Ġin - place , Ġun like Ġthe Ġdocument Ġitself . Ċ Ġ* Ċ Ġ* ĠYou Ġshould Ġuse Ġthe Ġunique Ġid Ġfor Ġdata Ġmanip ulating Ġor Ġsearch Ġpagination . ĠUnique ĠI ds , Ġyou Ġshould Ġremember . Ċ Ġ* Ċ Ġ* ĠHence , Ġyou Ġcan Ġuse Ġauto Ġincrement Ġserial Ġas Ġyour Ġmetadata Ġlibrary 's Ġprimary Ġkey , Ċ Ġ* Ġand Ġuse Ġa Ġcolumn Ġto Ġmark Ġthe Ġstatus Ġof Ġsingle Ġrow ( deleted Ġor Ġnormal ). ĠWhen Ġyou Ġinsert Ġnew Ġrows , Ġyou Ġcan Ġupdate Ġthose Ċ Ġ* Ġrows Ġwhich Ġhave Ġ' deleted ' Ġtag Ġbefore Ġapp ending Ġnew Ġdata Ġto Ġthe Ġtail Ġof Ġtable . Ċ Ġ* Ċ Ġ* ĠOr Ġyou Ġcan Ġjust Ġignore Ġthe Ġdis continuous Ġprimary Ġkey Ġvalue Ġafter Ġyou Ġexecute Ġlots Ġof Ġdelete Ġsql Ġif Ġyou Ġdon 't Ġhave Ġtoo Ġmany Ġdata . Ċ Ġ* Ċ Ġ* ĠIf Ġyou Ġdon 't Ġwant Ġto Ġuse Ġa Ġauto Ġincrement Ġprimary Ġkey , Ġyou Ġcan Ġsimply Ġinsert Ġid Ġby Ġyourself Ġyour Ġplugin . Ċ Ġ* Ċ Ġ* ĠSupported Ġfeatures : Ċ Ġ* Ġ 1 . ĠSearch Ġresult Ġpaging Ċ Ġ* Ġ 2 . ĠEdit Ġabstract Ċ Ġ* Ġ 3 . ĠEdit Ġcustom Ġtags Ċ Ġ* Ġ 4 . ĠEdit Ġpreview Ċ Ġ* Ġ 5 . ĠImport / Export Ġmetadata Ġdocument Ġ( as Ġjson ). ĠMark Ġdelete . ĠInsert Ġnew Ġdocument Ġto Ġcover Ġthe Ġdeleted Ġone . Ċ Ġ* Ġ 6 . ĠFull - Text Ġsearch Ġsupport Ċ Ġ* Ġ 7 . ĠAdv ance Ġsearch Ġsupport Ġand Ġsearch Ġrules Ċ Ġ* Ġ 8 . ĠAttribute Ġsearch Ġsupport Ċ Ġ* Ġ 9 . ĠAdd Ġcustom Ġj MenuItem Ġin Ġ' Tools ' Ġand Ġnew Ġj Dialog Ġor Ġj Frame Ċ Ġ* Ġ 1 0 . ĠPlugin Ġdescription Ċ Ġ* Ġ*/ Ċ interface ĠBasic Meta Plugin API Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġsql Ġfor Ġgetting Ġthe Ġpage Ġfrom Ġ[ page Location ] Ġwith Ġ[ pageSize ] Ġrows . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġgoto Page ( pageSize : ĠInt , Ġpage Location : ĠInt ): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReceive Ġnew Ġ[ content ] Ġto Ġupdate Ġ[ id ]: ĠMetadata 's ĠAbstract Ġthen Ġreturn Ġthe Ġlatest Ġabstract . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġupdate Ġfailed , Ġreturn Ġthe Ġlast Ġabstract Ġcontent . ĊĠĠĠĠ Ġ* ĠIf Ġcontent Ġis Ġnull , Ġreturn Ġthe Ġlast Ġabstract Ġcontent . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġput Abstract ( id : ĠInt , Ġcontent : ĠString ?): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSimilar Ġto Ġput Abstract (). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġ[ override ] Ġis Ġtrue , Ġnew Ġ[ tags ] Ġwill Ġcover Ġthe Ġold Ġone . ĊĠĠĠĠ Ġ* ĠIf Ġ[ override ] Ġis Ġfalse , Ġnew Ġ[ tags ] Ġwill Ġappend Ġto Ġthe Ġold Ġone . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġput Custom Tags ( id : ĠInt , Ġtags : ĠList < String > ?, Ġoverride : ĠBoolean ): ĠList < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSimilar Ġto Ġput Abstract () ĊĠĠĠĠ Ġ* ĠPreview Ġcan Ġbe Ġa Ġtext Ġor Ġa Ġbase 6 4 Ġcode Ġconvert Ġfrom Ġa Ġphoto . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġ[ override ] Ġis Ġtrue , Ġnew Ġ[ pre views ] Ġwill Ġcover Ġthe Ġold Ġone . ĊĠĠĠĠ Ġ* ĠIf Ġ[ override ] Ġis Ġfalse , Ġnew Ġ[ pre views ] Ġwill Ġappend Ġto Ġthe Ġold Ġone . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġput Preview ( id : ĠInt , Ġpre views : ĠList < String > ?, Ġoverride : ĠBoolean ): ĠList < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOffic ial Ġimport Ġmetadata Ġsupport . ĊĠĠĠĠ Ġ* ĠImport Ġone Ġor Ġmore Ġmetadata Ġdocuments Ġinto Ġmetadata Ġlibrary . ĊĠĠĠĠ Ġ* ĠIf Ġa Ġmetadata Ġlibrary Ġcontains Ġany Ġdata Ġmarked Ġ' deleted ', Ġnew Ġmetadata Ġdocuments Ġwill Ġuse Ġthose ĊĠĠĠĠ Ġ* Ġ' deleted ' Ġrow Ġfirst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġlist Ġwhich Ġcontains Ġall Ġmetadata Ġdocuments ' Ġids Ġcreated Ġby Ġmethod . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġpost Metadata ( device : ĠDevice API ): ĠList < Int > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMark Ġall Ġrows Ġwhich Ġtheir Ġid Ġin Ġ[ ids ] Ġ' deleted '. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠHow Ġmany Ġrows Ġaffected . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġdelete Metadata ( ids : ĠList < Int >): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExport Ġmetadata Ġas Ġa Ġfile . ĠIf Ġdone Ġreturn Ġtrue , Ġor Ġfalse . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġexport Metadata ( id : ĠInt ): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUse Ġ[ raw Input ] Ġexecute Ġfull Ġtext Ġsearch . ĊĠĠĠĠ Ġ* Ġ@ param Ġraw Input ĠString , Ġfrom Ġfull Ġtext Ġsearch 's ĠGUI Ġform . ĊĠĠĠĠ Ġ* Ġ@ param Ġtarget Lib ĠInt , Ġtarget Ġmetadata Ġlibrary 's Ġid . ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Tab ĠBoolean , Ġcreate Ġa Ġnew Ġtab Ġto Ġshow Ġresults . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġfull Text Search On DB MS ( raw Input : ĠString , Ġtarget Lib : ĠInt , Ġnew Tab : ĠBoolean ): ĠList < Any > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUse Ġrules Ġto Ġexecute Ġadvance Ġsearch . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġadvance Search On DB MS ( rules : ĠList < Search Rules >, Ġtarget Lib : ĠInt , Ġnew Tab : ĠBoolean ): ĠList < Any > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFind Ġout Ġall Ġmetadata Ġwhich Ġits Ġ[ attribute ] Ġexactly Ġequals Ġto Ġ[ value ]. ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġattr Search On DB MS ( attribute : ĠString , Ġvalue : ĠString , Ġtarget Lib : ĠInt , Ġnew Tab : ĠBoolean ): ĠList < Any > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġlist Ġcontains Ġall Ġnames Ġyou Ġwant Ġto Ġadd Ġto ĠJ Menu Ġand Ġcorresponding Ġclass Ġname ĊĠĠĠĠ Ġ* Ġto Ġcreate Ġa Ġinstance Ġof ĠJ Dialog Ġor ĠJ Frame . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġregister J MenuItem (): ĠMap < String , ĠString > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġhtml Ġtext Ġto Ġdescribe Ġthe Ġplugin ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġget HTML Description (): ĠString Ċ }