package org.fluxtream.core.domain;
import java.util.List;
import org.fluxtream.core.TimeInterval;
import org.fluxtream.core.connectors.ObjectType;
import org.jetbrains.annotations.Nullable;
/**
* @author Chris Bartley (bartley@cmu.edu)
*/
public interface PhotoFacetFinderStrategy {
List<AbstractFacet> findAll(ApiKey apiKey, ObjectType objectType, TimeInterval timeInterval);
List<AbstractFacet> findBefore(ApiKey apiKey, ObjectType objectType, long timeInMillis, int desiredCount);
List<AbstractFacet> findAfter(ApiKey apiKey, ObjectType objectType, long timeInMillis, int desiredCount);
List<AbstractFacet> findAll(ApiKey apiKey,
ObjectType objectType,
TimeInterval timeInterval,
@Nullable TagFilter tagFilter);
List<AbstractFacet> findBefore(ApiKey apiKey,
ObjectType objectType,
long timeInMillis,
int desiredCount,
@Nullable TagFilter tagFilter);
List findAfter(ApiKey apiKey, ObjectType objectType, long timeInMillis, int desiredCount, @Nullable TagFilter tagFilter);
AbstractFacet findOldest(ApiKey apiKey, ObjectType objectType);
AbstractFacet findLatest(ApiKey apiKey, ObjectType objectType);
}