/* * 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.metadata.runtime.api; import java.util.List; /** * <p>Instances of this interface represent Keys for a Group. The values of a Key are analogous to a Primary Key, Unique Key or Foreign Key in a database.</p> * * @since 8.0 */ public interface Key extends MetadataObject { /** * Return the description. * @return String */ String getDescription(); /** * Return the alias. * @return String alias */ String getAlias(); /** * Returns an ordered list of ElementID's this key is made of. * @return List of ElementID's that make up the key */ List getElementIDs(); /** * Return boolean indicating if the key is the primary key. * @return boolean */ boolean isPrimaryKey(); /** * Return boolean indicating if this key is a foreign key. * @return boolean */ boolean isForeignKey(); /** * Return boolean indicating if the key is a unique key. * @return boolean */ boolean isUniqueKey(); /** * Return boolean indicating if this key is indexed. * @return boolean */ boolean isIndexed(); /** * Return boolean indicating if this is an access pattern. * @return boolean */ boolean isAccessPattern(); /** * Return short indicating the type of key. * @return short * * @see org.teiid.designer.metadata.runtime.api.MetadataConstants.KEY_TYPES */ short getKeyType(); /** * Return short indicating the type of reference key matching. * @return short * * @see org.teiid.designer.metadata.runtime.api.MetadataConstants.MATCH_TYPES */ short getMatchType(); MetadataID getReferencedKey(); /** * Return the path to the key. * @return String */ String getPath(); }