package Ġco . uk . j ive election . campaign . translator . web Ċ Ċ import Ġco . uk . j ive election . campaign . j ive . J ive Ċ import Ġco . uk . j ive election . campaign . output . twitter . Translation Entity Ċ import Ġco . uk . j ive election . campaign . translator . J ive Translator Ċ import Ġorg . apache . commons . lang 3 . String Escape Utils Ċ import Ġorg . springframework . web . client . Rest Template Ċ import Ġorg . springframework . web . client . post For Object Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠImplements Ġa Ġweb Ġbased ĠJ ive Translator . Ċ Ġ*/ Ċ class ĠWeb J ive Translator ( private Ġval Ġj ive Bot : ĠJ ive < *, Ġ*, Ġ* >) Ġ: ĠJ ive Translator Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtranslate ( entities : ĠList < Translation Entity >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( entity Ġin Ġentities ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entity . trans latable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtranslate Ġ= Ġprocess String ( entity . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( translate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( entity . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġj ive Bot . on Translation Complete ( string Builder . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess String ( text : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrest Template Ġ= ĠRest Template () ĊĠĠĠĠĠĠĠ Ġval Ġquery Map Ġ= ĠHashMap < String , ĠString >( 2 ) ĊĠĠĠĠĠĠĠ Ġquery Map [" type "] Ġ= Ġ" translator " ĊĠĠĠĠĠĠĠ Ġquery Map [" input "] Ġ= Ġtext ĊĊĠĠĠĠĠĠĠ Ġval Ġj ive Response Ġ= Ġrest Template . post For Object < String >( url Ġ= ĠJ IVE _ ENDPOINT , Ġuri Variables Ġ= Ġquery Map ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsafe String Ġ= ĠString Escape Utils . un escape Html 4 ( j ive Response ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠText Helper . twitter Work around s ( safe String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠJ IVE _ ENDPOINT Ġ= Ġ" http :// www . cs . ut ex as . edu / users / j bc / b ork / b ork . cgi " ĊĠĠĠ Ġ} Ċ } Ċ