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

nl.vpro.domain.api.media.MediaRepository Maven / Gradle / Ivy

Go to download

Contains the objects used by the Frontend API, like forms and result objects

The newest version!
/*
 * Copyright (C) 2013 Licensed under the Apache License, Version 2.0
 * VPRO The Netherlands
 */
package nl.vpro.domain.api.media;

import java.time.Instant;

import org.checkerframework.checker.nullness.qual.Nullable;
import org.meeuw.functional.ReasonedPredicate;

import nl.vpro.domain.api.*;
import nl.vpro.domain.api.profile.ProfileDefinition;
import nl.vpro.domain.api.profile.exception.ProfileNotFoundException;
import nl.vpro.domain.media.MediaLoader;
import nl.vpro.domain.media.MediaObject;
import nl.vpro.util.CloseableIterator;
import nl.vpro.util.FilteringIterator;

/**
 * @author Roelof Jan Koekoek
 * @since 2.0
 */
public interface MediaRepository extends MediaLoader, Redirector {

    MediaResult list(Order order, long offset, Integer max);

    MediaResult listMembers(MediaObject media, ProfileDefinition profile, Order order, long offset, Integer max) throws ProfileNotFoundException;

    MediaResult listDescendants(MediaObject media, ProfileDefinition profile, Order order, long offset, Integer max) throws ProfileNotFoundException;

    ProgramResult listEpisodes(MediaObject media, ProfileDefinition profile, Order order, long offset, Integer max) throws ProfileNotFoundException;

    @Deprecated
    CloseableIterator changes(Long since, ProfileDefinition current, ProfileDefinition previous, Order order, Integer max, Long keepAlive);

    CloseableIterator changes(
        @Nullable final Instant since,
        @Nullable final String mid,
        @Nullable final ProfileDefinition currentProfile,
        @Nullable final Order order,
        @Nullable final Integer max,
        @Nullable Deletes deletes,
        @Nullable final Tail tail,
        @Nullable final ReasonedPredicate filter
    );

    CloseableIterator iterate(ProfileDefinition profile, MediaForm form, long offset, Integer max, FilteringIterator.KeepAlive keepAlive);


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy