/**
 * 
 */
package edu.uprm.admg.nettraveler.schema;

/**
 * This is an attribute that is part of a relation.
 * Examples of this type of attributes are 
 * projections from attributes in a table or
 * the base attributes of the relation. 
 * <br>
 * Universidad de Puerto Rico@Mayaguez.
 * <br>
 * <code>NetTraveler</code>
 */
/*
 * @author Elliot A. Vargas-Figueroa - M.S. Thesis Project.
 * P.I. Manuel Rodriguez-Martinez
 */
public interface RelationAttribute {
	/**
	 * Returns the name of the schema
	 * to which the relation belongs. 
	 * 
	 * @return Name of the schema.
	 */
	String getSchemaName();
	/**
	 * Sets the name of the schema
	 * to which the relation belongs. 
	 * 
	 * @param name Name of the schema.
	 */
	void setSchemaName(String name);
	/**
	 * Returns the alias of the relation 
	 * or <code>null</code> if there is no
	 * alias.
	 * @return Alias of the relation
	 */
	String getRelationAlias();

	/**
	 * Sets the alias of the relation.
	 * @param name Alias of the relation
	 */
	void setRelationAlias(String name);
	
	/**
	 * Gets the name of the relation to which 
	 * this attribute belongs.
	 * 
	 * @return Name of the relation.
	 */
	String getRelationName();
	/**
	 * 
	 * Sets the name of the relation to which 
	 * this attribute belongs..
	 * @param name Name of the relation.
	 */
	void setRelationName(String name);
}
