Projects >> atlas >>22fac029f4d63e8df271e8ff99d3bd280d800b00

Chunk
Conflicting content
                                                                               .put("cbj8", "cbhs") // Sky Sports 1 HD
                                                                               .put("cbj9", "cbht") // Sky Sports 2 HD
                                                                               .build();
<<<<<<< HEAD
    
    private static final Set TEST_CHANNELS_FOR_BLACKOUT_FLAG = 
            ImmutableSet.of("http://ref.atlasapi.org/channels/nickjr", "http://ref.atlasapi.org/channels/cartoonito");
    
    
=======
   
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
    private final NumberToShortStringCodec idCodec;
    private final ContainerSummaryResolver containerSummaryResolver;
    private final ChannelResolver channelResolver;
Solution content
                                                                               .put("cbj8", "cbhs") // Sky Sports 1 HD
                                                                               .put("cbj9", "cbht") // Sky Sports 2 HD
                                                                               .build();

    private final NumberToShortStringCodec idCodec;
    private final ContainerSummaryResolver containerSummaryResolver;
    private final ChannelResolver channelResolver;
File
ItemModelSimplifier.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
    }
    
    private BlackoutRestriction blackoutRestriction(Broadcast broadcast) {
<<<<<<< HEAD

        boolean hasBlackoutRestrction = (TEST_CHANNELS_FOR_BLACKOUT_FLAG.contains(broadcast.getBroadcastOn())
                                            && broadcast.getTransmissionTime() != null
                                            && broadcast.getTransmissionTime().getHourOfDay() % 2 == 0)
                                         || ( broadcast.getBlackoutRestriction() != null
                                               && Boolean.TRUE.equals(broadcast.getBlackoutRestriction().getAll()));
        
        if (hasBlackoutRestrction) {
=======
        if (broadcast.getBlackoutRestriction() != null
                && Boolean.TRUE.equals(broadcast.getBlackoutRestriction().getAll())) {
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
            return new BlackoutRestriction(true);
        } else {
            return null;
Solution content
    }
    
    private BlackoutRestriction blackoutRestriction(Broadcast broadcast) {
        if (broadcast.getBlackoutRestriction() != null
                && Boolean.TRUE.equals(broadcast.getBlackoutRestriction().getAll())) {
            return new BlackoutRestriction(true);
        } else {
            return null;
File
ItemModelSimplifier.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Variable
Chunk
Conflicting content
    }
                episodeSequenceIndexer(),
                roviContentWriter(),
                contentResolver,
<<<<<<< HEAD
                fullIngestScheduleProcessor(),
=======
                scheduleProcessor(),
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
                auxCacheSupplier(),
                ingestStatusPersistor());
Solution content
                episodeSequenceIndexer(),
                roviContentWriter(),
                contentResolver,
                scheduleProcessor(),
                auxCacheSupplier(),
                ingestStatusPersistor());
    }
File
RoviModule.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Chunk
Conflicting content
    }
    
    @Bean
<<<<<<< HEAD
    public ScheduleFileProcessor fullIngestScheduleProcessor() {
        return scheduleProcessor(FULL_INGEST);
    }

    @Bean
    public ScheduleFileProcessor deltaIngestScheduleProcessor() {
        return scheduleProcessor(DELTA_INGEST);
    }

    private ScheduleFileProcessor scheduleProcessor(boolean fullIngest) {
=======
    private ScheduleFileProcessor scheduleProcessor() {
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
        return new ScheduleFileProcessor(
                new ItemBroadcastUpdater(contentResolver, contentWriter),
                new ScheduleLineBroadcastExtractor(channelResolver),
Solution content
    }
    
    @Bean
    private ScheduleFileProcessor scheduleProcessor() {
        return new ScheduleFileProcessor(
                new ItemBroadcastUpdater(contentResolver, contentWriter),
File
RoviModule.java
Developer's decision
Version 2
Kind of conflict
Annotation
Method declaration
Method signature
Chunk
Conflicting content
        Item item = (Item) identified;

        Version version = Iterables.getOnlyElement(item.getVersions());
<<<<<<< HEAD

        version.setBroadcasts(mergeOrReplaceBroadcasts(version, newBroadcasts, replaceBroadcasts));

        if (replaceBroadcasts) {
            version.setBroadcasts(Sets.newHashSet(newBroadcasts));
        } else {
            SetView newBroadcastsSetForContent = mergeWithExistentBroadcasts(newBroadcasts, version);
            version.setBroadcasts(newBroadcastsSetForContent);
        }
        
        contentWriter.createOrUpdate(item);
    }

    private Set mergeOrReplaceBroadcasts(Version version,
            Iterable newBroadcasts,
            boolean replaceBroadcasts) {
        if (replaceBroadcasts) {
            return Sets.newHashSet(newBroadcasts);
        } else {
            return mergeWithExistentBroadcasts(newBroadcasts, version);
        }
    }

=======
        version.setBroadcasts(mergeWithExistentBroadcasts(newBroadcasts, version));

        contentWriter.createOrUpdate(item);
    }

>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
    private SetView mergeWithExistentBroadcasts(Iterable newBroadcasts,
            Version version) {
        Set existingBroadcasts = version.getBroadcasts();
Solution content
        Item item = (Item) identified;

        Version version = Iterables.getOnlyElement(item.getVersions());
        version.setBroadcasts(mergeWithExistentBroadcasts(newBroadcasts, version));

        contentWriter.createOrUpdate(item);
    }

    private SetView mergeWithExistentBroadcasts(Iterable newBroadcasts,
            Version version) {
        Set existingBroadcasts = version.getBroadcasts();
File
ItemBroadcastUpdater.java
Developer's decision
Version 2
Kind of conflict
If statement
Method declaration
Method invocation
Chunk
Conflicting content
            ingestChain.execute(maybeRecoveredStatus.orNull());

            ingestStatusStore.markAsCompleted();
<<<<<<< HEAD

=======
            
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
            LOG.info("Processing programs complete");
            
        } finally {
Solution content
            ingestChain.execute(maybeRecoveredStatus.orNull());

            ingestStatusStore.markAsCompleted();

            LOG.info("Processing programs complete");
            
        } finally {
File
RoviFullIngestProcessor.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
    private final ScheduleLineBroadcastExtractor scheduleLineBroadcastExtractor;
    private int processedItems = 0;
    private int failedItems = 0;
<<<<<<< HEAD
    private final boolean fullIngest;
    
=======

>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
    public ScheduleFileProcessor(ItemBroadcastUpdater itemBroadcastUpdater, 
            ScheduleLineBroadcastExtractor scheduleLineBroadcastExtractor, boolean fullIngest) {
        this.itemBroadcastUpdater = checkNotNull(itemBroadcastUpdater);
Solution content
    private final ScheduleLineBroadcastExtractor scheduleLineBroadcastExtractor;
    private int processedItems = 0;
    private int failedItems = 0;

    public ScheduleFileProcessor(ItemBroadcastUpdater itemBroadcastUpdater, 
            ScheduleLineBroadcastExtractor scheduleLineBroadcastExtractor) {
        this.itemBroadcastUpdater = checkNotNull(itemBroadcastUpdater);
File
ScheduleFileProcessor.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
                                                                         .filter(Maybe.HAS_VALUE)
                                                                         .transform(Maybe.requireValueFunction());
                    
<<<<<<< HEAD
                    itemBroadcastUpdater.addBroadcasts(canonicalUriForProgram(programmeId), broadcasts, fullIngest);
=======
                    itemBroadcastUpdater.addBroadcasts(canonicalUriForProgram(programmeId), broadcasts);
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd
                    processedItems++;
                } catch (Exception e) {
                    log.error("Rovi programme ID " + programmeId, e);
Solution content
                                                                         .filter(Maybe.HAS_VALUE)
                                                                         .transform(Maybe.requireValueFunction());

                    itemBroadcastUpdater.addBroadcasts(canonicalUriForProgram(programmeId), broadcasts);
                    processedItems++;
                } catch (Exception e) {
                    log.error("Rovi programme ID " + programmeId, e);
File
ScheduleFileProcessor.java
Developer's decision
Version 2
Kind of conflict
Other
Chunk
Conflicting content
    @Test
    public void testProcessFile() throws IOException {
        ScheduleFileProcessor scheduleFileProcessor = new ScheduleFileProcessor(itemBroadcastUpdater,
<<<<<<< HEAD
                scheduleLineBroadcastExtractor,
                true);
=======
                scheduleLineBroadcastExtractor);
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd

        Item testItem1 = testItem(PROGRAM1_URI);
        Item testItem2 = testItem(PROGRAM2_URI);
Solution content
    @Test
    public void testProcessFile() throws IOException {
        ScheduleFileProcessor scheduleFileProcessor = new ScheduleFileProcessor(itemBroadcastUpdater,
                scheduleLineBroadcastExtractor);

        Item testItem1 = testItem(PROGRAM1_URI);
        Item testItem2 = testItem(PROGRAM2_URI);
File
ScheduleFileProcessorTest.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
    }

    @Test
<<<<<<< HEAD
    public void testFullIngestShouldReplaceExistentBroadcasts() throws IOException {
        ScheduleFileProcessor scheduleFileProcessor = new ScheduleFileProcessor(itemBroadcastUpdater,
                scheduleLineBroadcastExtractor,
                true);

        Item testItem1 = testItemWithBroadcasts(PROGRAM1_URI, existingBroadcasts());
        Item testItem2 = testItem(PROGRAM2_URI);

        when(contentResolver.findByCanonicalUris(ImmutableSet.of(PROGRAM1_URI))).thenReturn(resolvedContentFor(testItem1));
        when(contentResolver.findByCanonicalUris(ImmutableSet.of(PROGRAM2_URI))).thenReturn(resolvedContentFor(testItem2));

        scheduleFileProcessor.process(new File(Resources.getResource("org/atlasapi/remotesite/rovi/schedule.txt").getFile()));

        ArgumentCaptor argument = ArgumentCaptor.forClass(Item.class);

        verify(contentWriter, times(2)).createOrUpdate(argument.capture());

        Map items = getItemsMap(argument);
        Item writtenItem1 = items.get(PROGRAM1_URI);
        Set newBroadcasts = Iterables.getOnlyElement(writtenItem1.getVersions()).getBroadcasts();

        assertTrue(Sets.intersection(newBroadcasts, existingBroadcasts()).isEmpty());
    }

    @Test
    public void testFullIngestShouldMergeExistentBroadcasts() throws IOException {
        reset(contentResolver);
        ScheduleFileProcessor scheduleFileProcessor = new ScheduleFileProcessor(itemBroadcastUpdater,
                scheduleLineBroadcastExtractor,
                false);
=======
    public void testIngestShouldMergeExistentBroadcasts() throws IOException {
        reset(contentResolver);
        ScheduleFileProcessor scheduleFileProcessor = new ScheduleFileProcessor(itemBroadcastUpdater,
                scheduleLineBroadcastExtractor);
>>>>>>> 213c1c02b9faad1465198f3e3da9447838d32bcd

        Item testItem1 = testItemWithBroadcasts(PROGRAM1_URI, existingBroadcasts());
        Item testItem2 = testItem(PROGRAM2_URI);
Solution content
    }

    @Test
    public void testIngestShouldMergeExistentBroadcasts() throws IOException {
        reset(contentResolver);
        ScheduleFileProcessor scheduleFileProcessor = new ScheduleFileProcessor(itemBroadcastUpdater,
                scheduleLineBroadcastExtractor);

        Item testItem1 = testItemWithBroadcasts(PROGRAM1_URI, existingBroadcasts());
        Item testItem2 = testItem(PROGRAM2_URI);
File
ScheduleFileProcessorTest.java
Developer's decision
Version 2
Kind of conflict
Annotation
Method declaration
Method invocation
Method signature
Variable