All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.co.mruoc.promo.repository.account.mongo.AccountDocumentConverter Maven / Gradle / Ivy

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