// $HeadURL$
// $Id$
//
// Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College.
//
// Screensaver is an open-source project developed by the ICCB-L and NSRB labs
// at Harvard Medical School. This software is distributed under the terms of
// the GNU General Public License.
package edu.harvard.med.screensaver.rest;
import edu.harvard.med.screensaver.model.AbstractEntity;
import edu.harvard.med.screensaver.model.AbstractEntityVisitor;
/**
* A visitor interface for the Screensaver domain model entity classes exposed for streaming through the REST interface.
* Implementing classes will return the REST-ful URI for entity classes.
* <p>
* Note: <code>visit</code> methods should only be added for concrete entity
* classes (i.e., <i>abstract</i> entity classes should not be visitable). This
* ensures that each <i>concrete</i> <code>AbstractEntity</code> class that
* extends a subclass of {@link AbstractEntity} can provide its own
* {@link AbstractEntity#acceptVisitor(AbstractEntityVisitor)} method
* implementation.
*
*/
public interface EntityUriGenerator<R> extends AbstractEntityVisitor<R>
{
}