/** Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠGold man ĠS ach s . Ċ Ġ* Ġ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 Ġcom . gs . o be vo . impl Ċ Ċ import Ġcom . gs . o be vo . api . app data . Change Ċ import Ġcom . gs . o be vo . api . app data . Change Key Ċ import Ġcom . gs . o be vo . api . platform . Change Pair Ċ import Ġorg . eclipse . collections . api . Rich Iterable Ċ import Ġorg . eclipse . collections . api . block . procedure . Procedure 2 Ċ Ċ /** Ċ Ġ* ĠCalculates Ġthe Ġchanges Ġthat Ġwould Ġneed Ġto Ġbe Ġapplied Ġto Ġthe Ġenvironment Ġgiven Ġthe Ġsource Ġvs . Ġdeployed Ġchanges . Ċ Ġ* ĠThe Ġreturned ĠChange set Ġshould Ġhave Ġall Ġthe Ġchange Ġinformation , Ġincluding Ġproviding Ġthe Ġexecution Ġcommands Ġin Ġthe Ċ Ġ* Ġright Ġorder . Ċ Ġ*/ Ċ interface ĠChange set Creator Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSee Ġ[ Change set Creator ] Ġjavadoc . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdetermine Change set ( change Pairs : ĠIterable < Change Pair >, Ġfrom Source List : ĠRich Iterable < Change >, Ġinit Allowed On Hash Exceptions : ĠBoolean ): ĠChange set ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Change Pairs ( de ploys : ĠRich Iterable < Change >, Ġsources : ĠRich Iterable < Change >): ĠCollection < Change Pair > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchanges Ġ= Ġmutable Map Of < Change Key , ĠChange Pair >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd Change ToMap Ġ= ĠProcedure 2 < Change , ĠBoolean > Ġ{ Ġchange , Ġfrom Source Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchange Pair Ġ= Ġchanges . get Or Put ( change . change Key , Ġ{ ĠChange Pair ( change . change Key ) Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from Source ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Pair . source Change Ġ= Ġchange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Pair . deployed Change Ġ= Ġchange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsources . forEach With ( add Change ToMap , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġde ploys . forEach With ( add Change ToMap , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchanges . values ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ