Search in sources :

Example 1 with ItemRefAndItemSummary

use of org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary in project atlas-deer by atlasapi.

the class CqlContentStore method addItemRefsToContainers.

private List<Statement> addItemRefsToContainers(ImmutableList.Builder<ResourceUpdatedMessage> messages, Item item, ContainerRef containerRef, SeriesRef seriesRef) {
    List<Statement> result = Lists.newArrayList();
    ItemRef ref = item.toRef();
    ItemSummary summary = item.toSummary();
    PartialItemRef itemRef = itemRefTranslator.serialize(ref);
    Ref itemRefKey = refTranslator.serialize(ref);
    org.atlasapi.content.v2.model.udt.ItemSummary itemSummary = itemSummaryTranslator.serialize(summary);
    ImmutableMap<ItemRef, Iterable<BroadcastRef>> upcoming = ImmutableMap.of(item.toRef(), item.getUpcomingBroadcastRefs());
    Map<Ref, ItemRefAndBroadcastRefs> upcomingSerialised = MapStream.of(upcoming).mapEntries(refTranslator::serialize, vals -> new ItemRefAndBroadcastRefs(itemRef, StreamSupport.stream(vals.spliterator(), false).map(broadcastRefTranslator::serialize).collect(Collectors.toList()))).collect();
    ImmutableMap<ItemRef, Iterable<LocationSummary>> availableLocations = ImmutableMap.of(item.toRef(), item.getAvailableLocations());
    Map<Ref, ItemRefAndLocationSummaries> availableLocationsSerialised = MapStream.of(availableLocations).mapEntries(refTranslator::serialize, vals -> new ItemRefAndLocationSummaries(itemRef, StreamSupport.stream(vals.spliterator(), false).map(locationSummaryTranslator::serialize).collect(Collectors.toList()))).collect();
    if (containerRef != null) {
        result.add(accessor.addItemRefsToContainer(containerRef.getId().longValue(), ImmutableMap.of(itemRefKey, itemRef), upcomingSerialised, availableLocationsSerialised));
        if (seriesRef == null) {
            result.add(accessor.addItemSummariesToContainer(containerRef.getId().longValue(), ImmutableMap.of(itemRefKey, new ItemRefAndItemSummary(itemRef, itemSummary))));
        }
        messages.add(new ResourceUpdatedMessage(UUID.randomUUID().toString(), Timestamp.now(), containerRef));
    }
    if (seriesRef != null) {
        result.add(accessor.addItemRefsToContainer(seriesRef.getId().longValue(), ImmutableMap.of(itemRefKey, itemRef), upcomingSerialised, availableLocationsSerialised));
        result.add(accessor.addItemSummariesToContainer(seriesRef.getId().longValue(), ImmutableMap.of(itemRefKey, new ItemRefAndItemSummary(itemRef, itemSummary))));
        messages.add(new ResourceUpdatedMessage(UUID.randomUUID().toString(), Timestamp.now(), seriesRef));
    }
    return result;
}
Also used : org.atlasapi.content(org.atlasapi.content) Broadcast(org.atlasapi.content.Broadcast) MissingResourceException(org.atlasapi.entity.util.MissingResourceException) LoggerFactory(org.slf4j.LoggerFactory) Resolved(org.atlasapi.entity.util.Resolved) MappingManager(com.datastax.driver.mapping.MappingManager) ConsistencyLevel(com.datastax.driver.core.ConsistencyLevel) Optional(com.google.common.base.Optional) Session(com.datastax.driver.core.Session) ContainerRef(org.atlasapi.content.ContainerRef) com.google.common.collect(com.google.common.collect) IdGenerator(com.metabroadcast.common.ids.IdGenerator) BatchStatement(com.datastax.driver.core.BatchStatement) Longs(com.google.common.primitives.Longs) Function(com.google.common.base.Function) OptionalMap(com.metabroadcast.common.collect.OptionalMap) Collectors(java.util.stream.Collectors) Promise(com.metabroadcast.promise.Promise) MoreCollectors(com.metabroadcast.common.stream.MoreCollectors) Statement(com.datastax.driver.core.Statement) ContainerSummary(org.atlasapi.content.ContainerSummary) java.util(java.util) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) Clock(com.metabroadcast.common.time.Clock) Description(org.atlasapi.content.v2.model.udt.Description) ImmutableOptionalMap(com.metabroadcast.common.collect.ImmutableOptionalMap) Timestamp(com.metabroadcast.common.time.Timestamp) LocationSummary(org.atlasapi.content.LocationSummary) EquivalenceGraph(org.atlasapi.equivalence.EquivalenceGraph) MapStream(com.codepoetics.protonpack.maps.MapStream) StreamSupport(java.util.stream.StreamSupport) BroadcastRef(org.atlasapi.content.BroadcastRef) SeriesRef(org.atlasapi.content.SeriesRef) org.atlasapi.content.v2.model.udt(org.atlasapi.content.v2.model.udt) WriteResult(org.atlasapi.entity.util.WriteResult) org.atlasapi.content.v2.serialization(org.atlasapi.content.v2.serialization) Nullable(javax.annotation.Nullable) MetricRegistry(com.codahale.metrics.MetricRegistry) Logger(org.slf4j.Logger) DateTime(org.joda.time.DateTime) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Throwables(com.google.common.base.Throwables) Id(org.atlasapi.entity.Id) ResourceUpdatedMessage(org.atlasapi.messaging.ResourceUpdatedMessage) ItemSummary(org.atlasapi.content.ItemSummary) ExecutionException(java.util.concurrent.ExecutionException) Futures(com.google.common.util.concurrent.Futures) EquivalenceGraphStore(org.atlasapi.equivalence.EquivalenceGraphStore) Mapper(com.datastax.driver.mapping.Mapper) MessageSender(com.metabroadcast.common.queue.MessageSender) Instant(org.joda.time.Instant) WriteException(org.atlasapi.entity.util.WriteException) org.atlasapi.content.v2.model.udt(org.atlasapi.content.v2.model.udt) BatchStatement(com.datastax.driver.core.BatchStatement) Statement(com.datastax.driver.core.Statement) ResourceUpdatedMessage(org.atlasapi.messaging.ResourceUpdatedMessage) ItemSummary(org.atlasapi.content.ItemSummary) ContainerRef(org.atlasapi.content.ContainerRef) BroadcastRef(org.atlasapi.content.BroadcastRef) SeriesRef(org.atlasapi.content.SeriesRef)

Example 2 with ItemRefAndItemSummary

use of org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary in project atlas-deer by atlasapi.

the class ContainerSetter method serialize.

public void serialize(Content internal, org.atlasapi.content.Content content) {
    if (!Container.class.isInstance(content)) {
        return;
    }
    Container container = (Container) content;
    ImmutableList<org.atlasapi.content.ItemRef> itemRefs = container.getItemRefs();
    if (itemRefs != null && !itemRefs.isEmpty()) {
        internal.setItemRefs(itemRefs.stream().collect(MoreCollectors.toImmutableMap(ref::serialize, itemRef::serialize)));
    }
    Map<org.atlasapi.content.ItemRef, Iterable<org.atlasapi.content.BroadcastRef>> upcomingContent = container.getUpcomingContent();
    if (upcomingContent != null && !upcomingContent.isEmpty()) {
        internal.setUpcomingContent(upcomingContent.entrySet().stream().collect(MoreCollectors.toImmutableMap(entry -> ref.serialize(entry.getKey()), entry -> new ItemRefAndBroadcastRefs(itemRef.serialize(entry.getKey()), StreamSupport.stream(entry.getValue().spliterator(), false).map(broadcastRef::serialize).collect(MoreCollectors.toImmutableList())))));
    }
    Map<org.atlasapi.content.ItemRef, Iterable<org.atlasapi.content.LocationSummary>> availableContent = container.getAvailableContent();
    if (availableContent != null && !availableContent.isEmpty()) {
        internal.setAvailableContent(availableContent.entrySet().stream().collect(MoreCollectors.toImmutableMap(entry -> ref.serialize(entry.getKey()), entry -> new ItemRefAndLocationSummaries(itemRef.serialize(entry.getKey()), StreamSupport.stream(entry.getValue().spliterator(), false).map(locationSummary::serialize).collect(MoreCollectors.toImmutableList())))));
    }
    List<org.atlasapi.content.ItemSummary> itemSummaries = container.getItemSummaries();
    if (itemSummaries != null && !itemSummaries.isEmpty()) {
        internal.setItemSummaries(itemSummaries.stream().collect(MoreCollectors.toImmutableMap(summary -> ref.serialize(summary.getItemRef()), summary -> new ItemRefAndItemSummary(itemRef.serialize(summary.getItemRef()), itemSummary.serialize(summary)))));
    }
}
Also used : ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) ItemSummary(org.atlasapi.content.v2.model.udt.ItemSummary) Container(org.atlasapi.content.Container) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) ItemRefAndLocationSummaries(org.atlasapi.content.v2.model.udt.ItemRefAndLocationSummaries) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) ItemRefAndBroadcastRefs(org.atlasapi.content.v2.model.udt.ItemRefAndBroadcastRefs)

Example 3 with ItemRefAndItemSummary

use of org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary in project atlas-deer by atlasapi.

the class ContainerSetter method deserialize.

public void deserialize(org.atlasapi.content.Content content, org.atlasapi.content.v2.model.Content internal) {
    Container container = (Container) content;
    Map<Ref, PartialItemRef> itemRefs = internal.getItemRefs();
    if (itemRefs != null) {
        container.setItemRefs(itemRefs.entrySet().stream().map(entry -> itemRef.deserialize(entry.getKey(), entry.getValue())).collect(Collectors.toList()));
    }
    Map<Ref, ItemRefAndBroadcastRefs> internalUpcomingContent = internal.getUpcomingContent();
    if (internalUpcomingContent != null) {
        Map<org.atlasapi.content.ItemRef, Iterable<org.atlasapi.content.BroadcastRef>> upcomingContent = internalUpcomingContent.entrySet().stream().collect(MoreCollectors.toImmutableMap(entry -> {
            Ref ref = entry.getKey();
            ItemRefAndBroadcastRefs broadcasts = entry.getValue();
            return itemRef.deserialize(ref, broadcasts.getItemRef());
        }, entry -> entry.getValue().getBroadcastRefs().stream().map(broadcastRef::deserialize).collect(MoreCollectors.toImmutableList())));
        container.setUpcomingContent(upcomingContent);
    }
    Map<Ref, ItemRefAndLocationSummaries> internalAvailableContent = internal.getAvailableContent();
    if (internalAvailableContent != null) {
        Map<org.atlasapi.content.ItemRef, Iterable<org.atlasapi.content.LocationSummary>> availableContent = internalAvailableContent.entrySet().stream().collect(MoreCollectors.toImmutableMap(entry -> {
            Ref ref = entry.getKey();
            ItemRefAndLocationSummaries locations = entry.getValue();
            return itemRef.deserialize(ref, locations.getItemRef());
        }, entry -> entry.getValue().getLocationSummaries().stream().map(locationSummary::deserialize).collect(MoreCollectors.toImmutableList())));
        container.setAvailableContent(availableContent);
    }
    Map<Ref, ItemRefAndItemSummary> itemSummaries = internal.getItemSummaries();
    if (itemSummaries != null) {
        container.setItemSummaries(itemSummaries.entrySet().stream().map(entry -> {
            Ref ref = entry.getKey();
            ItemRefAndItemSummary summaryWithRef = entry.getValue();
            ItemSummary summary = summaryWithRef.getSummary();
            return itemSummary.deserialize(ref, summaryWithRef.getItemRef(), summary);
        }).collect(MoreCollectors.toImmutableList()));
    }
}
Also used : ItemRefAndBroadcastRefs(org.atlasapi.content.v2.model.udt.ItemRefAndBroadcastRefs) ItemRefAndLocationSummaries(org.atlasapi.content.v2.model.udt.ItemRefAndLocationSummaries) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) Container(org.atlasapi.content.Container) ItemRefSerialization(org.atlasapi.content.v2.serialization.ItemRefSerialization) Collectors(java.util.stream.Collectors) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Content(org.atlasapi.content.v2.model.Content) ItemSummary(org.atlasapi.content.v2.model.udt.ItemSummary) LocationSummarySerialization(org.atlasapi.content.v2.serialization.LocationSummarySerialization) RefSerialization(org.atlasapi.content.v2.serialization.RefSerialization) Map(java.util.Map) MoreCollectors(com.metabroadcast.common.stream.MoreCollectors) StreamSupport(java.util.stream.StreamSupport) ItemSummarySerialization(org.atlasapi.content.v2.serialization.ItemSummarySerialization) Ref(org.atlasapi.content.v2.model.udt.Ref) BroadcastRefSerialization(org.atlasapi.content.v2.serialization.BroadcastRefSerialization) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) ItemSummary(org.atlasapi.content.v2.model.udt.ItemSummary) Container(org.atlasapi.content.Container) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) Ref(org.atlasapi.content.v2.model.udt.Ref) ItemRefAndItemSummary(org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary) ItemRefAndLocationSummaries(org.atlasapi.content.v2.model.udt.ItemRefAndLocationSummaries) PartialItemRef(org.atlasapi.content.v2.model.udt.PartialItemRef) ItemRefAndBroadcastRefs(org.atlasapi.content.v2.model.udt.ItemRefAndBroadcastRefs)

Aggregations

MoreCollectors (com.metabroadcast.common.stream.MoreCollectors)2 Collectors (java.util.stream.Collectors)2 StreamSupport (java.util.stream.StreamSupport)2 Container (org.atlasapi.content.Container)2 ItemRefAndBroadcastRefs (org.atlasapi.content.v2.model.udt.ItemRefAndBroadcastRefs)2 ItemRefAndItemSummary (org.atlasapi.content.v2.model.udt.ItemRefAndItemSummary)2 ItemRefAndLocationSummaries (org.atlasapi.content.v2.model.udt.ItemRefAndLocationSummaries)2 ItemSummary (org.atlasapi.content.v2.model.udt.ItemSummary)2 PartialItemRef (org.atlasapi.content.v2.model.udt.PartialItemRef)2 MetricRegistry (com.codahale.metrics.MetricRegistry)1 MapStream (com.codepoetics.protonpack.maps.MapStream)1 BatchStatement (com.datastax.driver.core.BatchStatement)1 ConsistencyLevel (com.datastax.driver.core.ConsistencyLevel)1 Session (com.datastax.driver.core.Session)1 Statement (com.datastax.driver.core.Statement)1 Mapper (com.datastax.driver.mapping.Mapper)1 MappingManager (com.datastax.driver.mapping.MappingManager)1 Function (com.google.common.base.Function)1 Optional (com.google.common.base.Optional)1 Preconditions.checkNotNull (com.google.common.base.Preconditions.checkNotNull)1