package de.fub.agg2graph.structs.frechet;
import java.util.Collection;
import java.util.Iterator;
import de.fub.agg2graph.agg.AggConnection;
import de.fub.agg2graph.agg.AggNode;
public interface IAggregatedMap extends SearchIndex<AggNode>, Iterable<AggNode> {
// public void insertEdge(GPSEdge edge);
public void insertConnection(AggConnection conn);
// public Collection<AggConnection> getInEdges(GPSPoint location, Collection<AggConnection> inEdges);
public Collection<AggConnection> getInConnections(AggNode location, Collection<AggConnection> inConnection);
// public Collection<AggConnection> getOutEdges(GPSPoint location, Collection<AggConnection> outEdges);
public Collection<AggConnection> getOutConnections(AggNode location, Collection<AggConnection> outConnection);
// public Collection<AggConnection> edges();
public Collection<AggConnection> connection();
// public boolean removeEdge(GPSEdge edge);
public boolean removeConnections(AggConnection conn);
// public void updateLocation(GPSPoint location, double dLongitude, double dLatitude);
public void updateLocation(AggNode location, double dLongitude, double dLatitude);
/**
* @post the node has the new values from neu.
*/
public void updateLocation(AggNode old, AggNode neu);
// Depth first search paths in the graph by weighting the edges with the valueFunc.
public Iterator<AggConnection> connectionsIterator(AggNode start, WeightFunc weightFunc);
public void decorate(AggNode location, Object decoration);
public void decorate(AggConnection edge, Object decoration);
public boolean isEmpty();
}