@Override
@NotNull
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
@Cacheable(lifetime = Tv.FIVE, unit = TimeUnit.MINUTES)
public ConcurrentMap<URN, Domains> load() throws IOException {
final ConcurrentMap<URN, Domains> domains =
new ConcurrentHashMap<URN, Domains>(0);
final Iterable<Item> items = this.region
.table(this.table)
.frame()
.through(
new ScanValve().withAttributeToGet(
DefaultDynamo.USER,
DefaultDynamo.NAME,
DefaultDynamo.KEY,
DefaultDynamo.SECRET,
DefaultDynamo.BUCKET,
DefaultDynamo.REGION,
DefaultDynamo.SYSLOG
).withLimit(Tv.MILLION)
);
for (final Item item : items) {
final URN user = URN.create(item.get(DefaultDynamo.USER).getS());
domains.putIfAbsent(user, new Domains());
domains.get(user).add(DefaultDynamo.domain(item));
}
return domains;
}