package info.oais.interfaces.infomodel.identifiers;

import info.oais.interfaces.infomodel.Identifier;
import java.net.URI;

/**
 * An Identifier which points to the location of an object, which may be a
 * physical object..
 * @author David
 * @version 1.0
 * @since 06-Sep-2021 15:59:46
 */
public interface Location extends Identifier {
	/**
	 * Returns the location.
	 * @return Details of the location.
	 */
	public Location getLocation();
	/**
	 * Sets the location.
	 * @param loc Details of the location.
	 */
	public void setLocation(Location loc);
	
	/**
	 * Returns the URI if any.
	 * @return Details of the location as a URI if possible.
	 */
	public URI getUri();
	/**
	 * Sets the location as a URI.
	 * @param loc Details of the location as a URI.
	 */
	public void setUri(URI loc);
	
	/**
	 * Returns the location as a String.
	 * @return Details of the location as a String.
	 */
	public String getString();
	/**
	 * Sets the location as a Stingr.
	 * @param loc Details of the location as a String.
	 */
	public void setString(String loc);
	
	/**
	 * Convert the Location to a String.
	 * @return The Location as a String.
	 */
	 public String toString();


}