package com.limegroup.gnutella.altlocs;
import com.limegroup.gnutella.URN;
/**
* Interface for classes that serve as collection points for alternate sources
* for files.
*/
public interface AlternateLocationCollector {
/**
* Adds an <tt>AlternateLocation</tt> instance to the collection of
* <tt>AlternateLocation</tt>s.
*/
public boolean add(AlternateLocation al);
/**
* Adds the specified collection of <tt>AlternateLocation</tt>s to
* this collection.
*
* @param alc the <tt>AlternateLocationCollection</tt> instance to
* add this alternate location to the collection
*/
public int addAll(AlternateLocationCollection alc);
/**
* Removes the specified location from this collection.
*/
public boolean remove(AlternateLocation al);
/**
* Returns whether or not this <tt>AlternateLocationCollector</tt> has
* any alternate locations.
*
* @return <tt>true</tt> if this <tt>AlternateLocationCollector</tt>
* has 1 or more alternate locations, <tt>false</tt> otherwise
*/
public boolean hasAlternateLocations();
/**
* Number of alternate locations this collector is holding
*
*/
public int getAltLocsSize();
/**
* Accessor for the SHA1 <tt>URN</tt> instance for this collection.
*
* @return the SHA1 <tt>URN</tt> for this collection
*/
public URN getSHA1Urn();
}