/* * 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.core.metamodel.aspect; import java.util.Collection; import java.util.List; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EReference; /** * MetamodelEntity * * @since 8.0 */ public interface MetamodelEntity { /** * Return the display name for the given entity * @return String name */ String getDisplayName(); /** * Return the plural display name for the given entity * @return String PluralDisplayName */ String getPluralDisplayName(); /** * Return the icon path for the given entity * @return String icon path */ String getIconPath(); /** * Return the tooltip for the given entity * @return String tooltip */ String getTooltip(); /** * Return the MetamodelAspect for the given id * @param String id * @return MetamodelAspect for the given id */ MetamodelAspect getMetamodelAspect(String id); /** * Return the collection of all Metamodel Aspects for the given entity * @return Collection Metamodel Aspects */ Collection getMetamodelAspects(); /** * Return the EClass for the given metamodel entity * @return EClass */ EClass getEClass(); /** * Return the list of all {@link EClass} instances that are * referenced, through non-containment references, by this class. * The list consists of all referenced classes both local and * inherited. * @return List */ List getReferencedClasses(); /** * Return the list of all {@link EReference} instances for this * MetamodelEntity that are uni directonal and non-containment, * ie: each EReference does not have an opposite EReference and * thus is uni directional and is non-containment. * @return List */ List getUniDirectionalReferences(); /** * Return the list of all {@link EClass} instances that can * be contained by this class. The list consists of * all referenced classes both local and inherited. * @return List */ List getContainedClasses(); /** * Return the list of all {@link EAttribute} instances for * this class. The list consists of all attributes both * local and inherited. * @return List */ List getAttributes(); }