/* * 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.metadata.runtime; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.core.index.IndexConstants; import org.teiid.designer.core.metamodel.aspect.sql.SqlUniqueKeyAspect; /** * UniqueKeyRecordImpl * * @since 8.0 */ public class UniqueKeyRecordImpl extends org.teiid.designer.metadata.runtime.impl.UniqueKeyRecordImpl { private static final long serialVersionUID = 3860885519616912384L; /** * Flags to determine if values have been set. */ private boolean foreignKeyIDsSet; // ================================================================================== // C O N S T R U C T O R S // ================================================================================== public UniqueKeyRecordImpl(final SqlUniqueKeyAspect sqlAspect, final EObject eObject) { super(new ModelerMetadataRecordDelegate(sqlAspect, eObject)); setRecordType(IndexConstants.RECORD_TYPE.UNIQUE_KEY); this.eObject = eObject; } private SqlUniqueKeyAspect getUniqueKeyAspect() { return (SqlUniqueKeyAspect) ((ModelerMetadataRecordDelegate)this.delegate).getSqlAspect(); } //================================================================================== // I N T E R F A C E M E T H O D S //================================================================================== /* * @see org.teiid.designer.metadata.runtime.UniqueKeyRecord#getForeignKeyIDs() */ @Override public List getForeignKeyIDs() { if(eObject != null && !foreignKeyIDsSet) { List columns = getUniqueKeyAspect().getForeignKeys((EObject)eObject); setForeignKeyIDs(((ModelerMetadataRecordDelegate)this.delegate).getObjectIDs(columns)); } return super.getForeignKeyIDs(); } // ================================================================================== // P U B L I C M E T H O D S // ================================================================================== /** * @param list */ @Override public void setForeignKeyIDs(List list) { super.setForeignKeyIDs(list); this.foreignKeyIDsSet = true; } }