/* * 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.IExpression; /** * */ public interface IElementSymbol<G extends IGroupSymbol, LV extends ILanguageVisitor> extends ISymbol<LV>, IExpression<LV> { public enum DisplayMode { // symbol name FULLY_QUALIFIED, // default OUTPUT_NAME, // short name SHORT_OUTPUT_NAME } /** * @return */ G getGroupSymbol(); /** * @param groupSymbol */ void setGroupSymbol(G groupSymbol); /** * @return */ boolean isExternalReference(); /** * @param value */ void setDisplayFullyQualified(boolean value); /** * * @return */ DisplayMode getDisplayMode(); /** * @param outputName */ void setDisplayMode(DisplayMode outputName); /** * @param targetType */ void setType(Class<Object> targetType); /** * Get the metadata ID that this group symbol resolves to. If * the group symbol has not been resolved yet, this will be null. * If the symbol has been resolved, this will never be null. * * @return Metadata ID object */ Object getMetadataID(); /** * Set the metadata ID that this group symbol resolves to. It cannot * be null. * * @param metadataID Metadata ID object * */ void setMetadataID(Object metadataID); }