package Ġmodel Ċ Ċ import Ġcom . amazonaws . auth . AWS Static Credentials Provider Ċ import Ġcom . amazonaws . auth . Basic AWSC redentials Ċ import Ġcom . amazonaws . client . builder . Aws Client Builder Ċ import Ġcom . amazonaws . services . dynamodb v 2 . Amazon D ynamoDB Ċ import Ġcom . amazonaws . services . dynamodb v 2 . Amazon D ynamoDB Client Builder Ċ import Ġcom . amazonaws . services . dynamodb v 2 . model .* Ċ import Ġjava . util .* ĊĊ Ċ private Ġinterface ĠTable Name Ġ{ ĊĠĠĠ Ġval ĠtableName : ĠString Ċ } Ċ Ċ abstract Ġclass ĠD ynamoDB Base Ġ: ĠTable Name Ġ{ ĊĠĠĠ Ġval Ġclient Ġ= Ġget D ynamo Db Client () ĊĊĠĠĠ Ġprotected Ġfun Ġdelete Item Base ( key Map : ĠMap < String , ĠAttribute Value >): ĠDelete Item Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDelete Item Request (). with TableName ( tableName ). with Key ( key Map ) ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . delete Item ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun ĠgetItem Base ( key Map : ĠMap < String , ĠAttribute Value >): ĠMap < String , ĠAttribute Value > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠGet Item Request (). with TableName ( tableName ). with Key ( key Map ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġclient . getItem ( request ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result . item Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġempty Map () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġput Item Base ( item Map : ĠMap < String , ĠAttribute Value >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠPut Item Request (). with TableName ( tableName ). with Item ( item Map ) ĊĠĠĠĠĠĠĠ Ġclient . put Item ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġquery ( key Conditions : ĠHashMap < String , ĠCondition >): ĠList < Map < String , ĠAttribute Value >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquery Request Ġ= ĠQuery Request () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with TableName ( tableName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Key Conditions ( key Conditions ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Result Ġ= Ġclient . query ( query Request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġquery Result . items ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġbatch GetItem ( conditions : ĠList < Map < String , ĠAttribute Value >> ): ĠList < Map < String , ĠAttribute Value >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠBatch GetItem Request () ĊĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= ĠKeys And Attributes (). with Keys ( conditions ) ĊĠĠĠĠĠĠĠ Ġrequest . add Request Items Entry ( tableName , Ġkeys ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġclient . batch GetItem ( request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . responses [ tableName ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġget D ynamo Db Client (): ĠAmazon D ynamoDB Ġ{ ĊĠĠĠ Ġval Ġservice EndPoint Ġ= ĠSystem . getenv (" DY NA MO DB _ SERVICE _ END _ POINT ") Ġ?: Ġ" http :// localhost : 8 0 0 0 " ĊĠĠĠ Ġval Ġregion Ġ= ĠSystem . getenv (" DY NA MO DB _ SERVICE _ REGION ") Ġ?: Ġ"" ĊĠĠĠ Ġvar Ġclient Builder Ġ= ĠAmazon D ynamoDB Client Builder . standard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Endpoint Configuration ( Aws Client Builder . Endpoint Configuration ( service EndPoint , Ġregion )) ĊĠĠĠ Ġclient Builder Ġ= Ġclient Builder . with Credentials ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAWS Static Credentials Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBasic AWSC redentials ("", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġclient Builder . build () Ċ } Ċ