package arida.ufc.br.moap.datamodelapi.spi; import arida.ufc.br.moap.core.algorithm.spi.ITrajectoryFactory; import arida.ufc.br.moap.core.beans.MovingObject; import arida.ufc.br.moap.core.beans.Trajectory; import arida.ufc.br.moap.core.beans.iterators.api.IMovingObjectIterable; import arida.ufc.br.moap.core.beans.iterators.api.ITrajectoryIterable; import arida.ufc.br.moap.core.spi.IDataModel; import java.util.Collection; /** * * @author franzejr * @author rafaelelias */ public interface ITrajectoryModel<S,T> extends IDataModel<Trajectory<S,T>> { /* * Add a single trajectory */ public void addTrajectory(Trajectory<S,T> trajectory); /* * @return Trajectory */ public Trajectory<S,T> getTrajectory(int id); public Trajectory<S,T> getTrajectory(String id); public Trajectory<S,T> removeTrajectory(int id); public Trajectory<S,T> removeTrajectory(String id); public ITrajectoryFactory<S,T> factory(); /* * @return List of All trajectories for a Moving Object */ public Collection<Trajectory<S,T>> getTrajectories(MovingObject mo); /* * @return Collection of all trajectory for a given Moving Object */ public Collection<Trajectory<S,T>> getTrajectories(String mo); /* * @return List of All trajectories */ public ITrajectoryIterable getTrajectories(); public IMovingObjectIterable getMovingObjects(); /* * @return Moving Object */ public MovingObject getMovingObject(int idx); public MovingObject getMovingObject(String id); /* * @return Moving Object */ public MovingObject removeMovingObject(int idx); public MovingObject removeMovingObject(String id); /* * @return Trajectory count */ public int getTrajectoryCount(); /* * @return Moving Object count */ public int getMovingObjectCount(); }