/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.query.sql.symbol;
import org.teiid.designer.query.sql.ILanguageVisitor;
import org.teiid.designer.query.sql.lang.ILanguageObject;
/**
*
*/
public interface ISymbol <LV extends ILanguageVisitor> extends ILanguageObject<LV> {
/**
* Character used to delimit name components in a symbol
*/
String SEPARATOR = "."; //$NON-NLS-1$
/**
* Get the name of the symbol
*
* @return Name of the symbol, never null
*/
String getName();
/**
* Get the short name of the element
*
* @return Short name of the symbol (un-dotted)
*/
String getShortName();
/**
* Change the symbol's name. This will change the symbol's hash code
* and canonical name!!!!!!!!!!!!!!!!! If this symbol is in a hashed
* collection, it will be lost!
*
* @param name
*/
void setShortName(String name);
/**
* Get the output name
*
* @return output name
*/
String getOutputName();
/**
* Set the output name
*
* @param outputName
*/
void setOutputName(String outputName);
}