/* * 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 org.eclipse.emf.ecore.EObject; import org.teiid.designer.core.index.IndexConstants; import org.teiid.designer.core.metamodel.aspect.sql.SqlModelAspect; /** * ModelRecordImpl * * @since 8.0 */ public class ModelRecordImpl extends org.teiid.designer.metadata.runtime.impl.ModelRecordImpl { private static final long serialVersionUID = -8844746659454419088L; /** * Flags to determine if values have been set. */ private boolean modelTypeSet; private boolean maxSetSizeSet; private boolean isVisibleSet; private boolean supportsDistinctSet; private boolean supportsOrderBySet; private boolean supportsOuterJoinSet; private boolean supportsWhereAllSet; private boolean primaryMetamodelUriSet; private boolean supportsJoinSet; public ModelRecordImpl(final SqlModelAspect sqlAspect, final EObject eObject) { super(new ModelerMetadataRecordDelegate(sqlAspect, eObject)); setRecordType(IndexConstants.RECORD_TYPE.TABLE); this.eObject = eObject; } private SqlModelAspect getModelAspect() { return (SqlModelAspect) ((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.ModelRecord#getPrimaryMetamodelUri() */ @Override public String getPrimaryMetamodelUri() { if(eObject != null && !primaryMetamodelUriSet) { setPrimaryMetamodelUri(getModelAspect().getPrimaryMetamodelUri((EObject)eObject)); } return super.getPrimaryMetamodelUri(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#getMaxSetSize() */ @Override public int getMaxSetSize() { if(eObject != null && !maxSetSizeSet) { setMaxSetSize(getModelAspect().getMaxSetSize((EObject)eObject)); } return super.getMaxSetSize(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#isVisible() */ @Override public boolean isVisible() { if(eObject != null && !isVisibleSet) { setVisible(getModelAspect().isVisible((EObject)eObject)); } return super.isVisible(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#supportsDistinct() */ @Override public boolean supportsDistinct() { if(eObject != null && !supportsDistinctSet) { setSupportsDistinct(getModelAspect().supportsDistinct((EObject)eObject)); } return super.supportsDistinct(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#supportsJoin() */ @Override public boolean supportsJoin() { if(eObject != null && !supportsJoinSet) { setSupportsJoin(getModelAspect().supportsJoin((EObject)eObject)); } return super.supportsJoin(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#supportsOrderBy() */ @Override public boolean supportsOrderBy() { if(eObject != null && !supportsOrderBySet) { setSupportsOrderBy(getModelAspect().supportsOrderBy((EObject)eObject)); } return super.supportsOrderBy(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#supportsOuterJoin() */ @Override public boolean supportsOuterJoin() { if(eObject != null && !supportsOuterJoinSet) { setSupportsOuterJoin(getModelAspect().supportsOuterJoin((EObject)eObject)); } return super.supportsOuterJoin(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#supportsWhereAll() */ @Override public boolean supportsWhereAll() { if(eObject != null && !supportsWhereAllSet) { setSupportsWhereAll(getModelAspect().supportsWhereAll((EObject)eObject)); } return super.supportsWhereAll(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ModelRecord#getModelType() */ @Override public int getModelType() { if(eObject != null && !modelTypeSet) { setModelType(getModelAspect().getModelType((EObject)eObject)); } return super.getModelType(); } // ================================================================================== // P U B L I C M E T H O D S // ================================================================================== /** * @param string */ @Override public void setPrimaryMetamodelUri(String string) { super.setPrimaryMetamodelUri(string); primaryMetamodelUriSet = true; } /** * @param b */ @Override public void setVisible(boolean b) { super.setVisible(b); isVisibleSet = true; } /** * @param i */ @Override public void setMaxSetSize(int i) { super.setMaxSetSize(i); maxSetSizeSet = true; } /** * @param b */ @Override public void setSupportsDistinct(boolean b) { super.setSupportsDistinct(b); supportsDistinctSet = true; } /** * @param b */ @Override public void setSupportsJoin(boolean b) { super.setSupportsJoin(b); supportsJoinSet = true; } /** * @param b */ @Override public void setSupportsOrderBy(boolean b) { super.setSupportsOrderBy(b); supportsOrderBySet = true; } /** * @param b */ @Override public void setSupportsOuterJoin(boolean b) { super.setSupportsOuterJoin(b); supportsOuterJoinSet = true; } /** * @param b */ @Override public void setSupportsWhereAll(boolean b) { super.setSupportsWhereAll(b); supportsWhereAllSet = true; } /** * @param i */ @Override public void setModelType(int i) { super.setModelType(i); modelTypeSet = true; } }