/* * 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.relationship; import org.eclipse.emf.ecore.EObject; /** * RelationshipTypeAspect * * @since 8.0 */ public interface RelationshipTypeAspect extends RelationshipEntityAspect { /** * Check if the relationship type has a direction. * @param eObject The <code>EObject</code> is checked if it is directed * @return boolean indicating if type is directed. */ boolean isDirected(EObject eObject); /** * Check if the relationship type is an abstract type. * @param eObject The <code>EObject</code> is checked if it is abstract * @return boolean indicating if type is abstract. */ boolean isAbstract(EObject eObject); /** * Check if the relationship type is an abstract type. * @param eObject The <code>EObject</code> is checked if it is exclusive * @return boolean indicating if type is exclusive. */ boolean isExclusive(EObject eObject); /** * Check if the relationship type is an abstract type. * @param eObject The <code>EObject</code> is checked if it is userdefined * @return boolean indicating if type is userdefined. */ boolean isUserDefined(EObject eObject); /** * Get stereotype on the type, this may be null. * @param eObject The <code>EObject</code> for which stereotype is obtained * @return types stereotype if any. */ String getStereoType(EObject eObject); /** * Get constraint on the type, this may be null. * @param eObject The <code>EObject</code> for which constraint is obtained * @return types constraint if any. */ String getConstraint(EObject eObject); /** * Get a the source relationshiprole <code>EObject</code>s for this relationship type. * @param eObject The <code>EObject</code> for which relationshiprole is obtained * @return a <code>EObject</code> that is the relationshiprole */ Object getSourceRole(EObject eObject); /** * Get a the target relationshiprole <code>EObject</code>s for this relationship type. * @param eObject The <code>EObject</code> for which relationshiprole is obtained * @return a <code>EObject</code> that is the relationshiprole */ Object getTargetRole(EObject eObject); /** * Get a the relationshiprole name for source to this relationship type. * @param eObject The <code>EObject</code> for which relationshiprole is obtained * @return name of the source role */ String getSourceRoleName(EObject eObject); /** * Get a the relationshiprole name for target to this relationship type. * @param eObject The <code>EObject</code> for which relationshiprole is obtained * @return name of the target type. */ String getTargetRoleName(EObject eObject); /** * Get the superType for this relationship type. * @param eObject The <code>EObject</code> for which relationshiprole is obtained * @return */ Object getSuperType(EObject eObject); }