
uk.co.mruoc.promo.repository.account.mongo.AccountDocumentConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of burger-promo Show documentation
Show all versions of burger-promo Show documentation
Burger promotion backend apis
The newest version!
package uk.co.mruoc.promo.repository.account.mongo;
import uk.co.mruoc.promo.entity.account.Account;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Stream;
public class AccountDocumentConverter {
public Account toAccount(AccountDocument document) {
return Account.builder()
.id(document.getId())
.promoClaims(toPromoClaims(document.getPromoClaims()))
.build();
}
public AccountDocument toDocument(Account account) {
return AccountDocument.builder()
.id(account.getId())
.promoClaims(toDocumentPromoClaims(account.getPromoClaims()))
.build();
}
public Stream toDocuments(Collection accounts) {
return accounts.stream().map(this::toDocument);
}
private static Map toPromoClaims(Map documentPromoClaims) {
Map promoClaims = new HashMap<>();
documentPromoClaims.forEach((key, value) -> promoClaims.put(key, new AtomicLong(value)));
return promoClaims;
}
private static Map toDocumentPromoClaims(Map promoClaims) {
Map documentPromoClaims = new HashMap<>();
promoClaims.forEach((key, value) -> documentPromoClaims.put(key, value.get()));
return documentPromoClaims;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy