/* * 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.metamodels.relational.aspects.sql; import java.util.ArrayList; import java.util.Collection; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.teiid.core.designer.util.CoreArgCheck; import org.teiid.designer.core.metamodel.aspect.MetamodelEntity; import org.teiid.designer.metamodels.relational.BaseTable; /** * TableAspect * * @since 8.0 */ public class BaseTableAspect extends TableAspect { public BaseTableAspect(MetamodelEntity entity) { super(entity); } /* (non-Javadoc) * @See org.teiid.designer.core.metamodel.aspect.sql.SqlTableAspect#getUniqueKeys(org.eclipse.emf.ecore.EObject) */ @Override public Collection getUniqueKeys(EObject eObject) { final Collection results = new ArrayList(); // Add the primary key CoreArgCheck.isInstanceOf(BaseTable.class, eObject); BaseTable baseTable = (BaseTable) eObject; Object value = baseTable.getPrimaryKey(); if(value != null) { results.add(value); } // Add the unique constraints EList constarints = baseTable.getUniqueConstraints(); if(constarints != null) { results.addAll(constarints); } return results; } /* (non-Javadoc) * @See org.teiid.designer.core.metamodel.aspect.sql.SqlTableAspect#getForeignKeys(org.eclipse.emf.ecore.EObject) */ @Override public Collection getForeignKeys(EObject eObject) { CoreArgCheck.isInstanceOf(BaseTable.class, eObject); BaseTable baseTable = (BaseTable) eObject; return baseTable.getForeignKeys(); } /* (non-Javadoc) * @See org.teiid.designer.core.metamodel.aspect.sql.SqlTableAspect#getPrimaryKey(org.eclipse.emf.ecore.EObject) */ @Override public Object getPrimaryKey(EObject eObject) { CoreArgCheck.isInstanceOf(BaseTable.class, eObject); BaseTable baseTable = (BaseTable) eObject; return baseTable.getPrimaryKey(); } }