/* * 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.metamodel.aspect.sql.SqlTransformationAspect; import org.teiid.designer.core.metamodel.aspect.sql.SqlTransformationInfo; /** * TransformationRecordImpl * * @since 8.0 */ public class TransformationRecordImpl extends org.teiid.designer.metadata.runtime.impl.TransformationRecordImpl { private static final long serialVersionUID = 767732723989088385L; private SqlTransformationInfo info; /** * Flags to determine if values have been set. */ private boolean transformedObjectIDSet; // ================================================================================== // C O N S T R U C T O R S // ================================================================================== public TransformationRecordImpl(final SqlTransformationAspect sqlAspect, final EObject eObject, final String type) { super(new ModelerMetadataRecordDelegate(sqlAspect, eObject)); // set the transformation type setTransformationType(type); this.eObject = eObject; } private SqlTransformationAspect getTransformationAspect() { return (SqlTransformationAspect) ((ModelerMetadataRecordDelegate)this.delegate).getSqlAspect(); } /** * @see org.teiid.designer.metadata.runtime.TransformationRecord#getTransformation() */ @Override public String getTransformation() { if(super.eObject != null) { if( getTransformationInfo() == null ) { return null; } return getTransformationInfo().getSqlTransform(); } return super.getTransformation(); } /* * @see org.teiid.designer.metadata.runtime.TransformationRecord#getBindings() */ @Override public List getBindings() { if(super.eObject != null) { return getTransformationInfo().getBindings(); } return super.getBindings(); } /* * @see org.teiid.designer.metadata.runtime.TransformationRecord#getSchemaPaths() */ @Override public List getSchemaPaths() { if(super.eObject != null) { return getTransformationInfo().getSchemaPaths(); } return super.getSchemaPaths(); } /** * @see org.teiid.designer.metadata.runtime.TransformationRecord#getTransformedObjectID() */ @Override public Object getTransformedObjectID() { if(eObject != null && !transformedObjectIDSet) { EObject transformedObj = (EObject) getTransformationAspect().getTransformedObject((EObject)eObject); setTransformedObjectID(((ModelerMetadataRecordDelegate)this.delegate).getObjectID(transformedObj)); } return super.getTransformedObjectID(); } // ================================================================================== // P U B L I C M E T H O D S // ================================================================================== /** * @param object */ @Override public void setTransformedObjectID(final Object object) { super.setTransformedObjectID(object); transformedObjectIDSet = true; } private SqlTransformationInfo getTransformationInfo() { if(info == null) { info = getTransformationAspect().getTransformationInfo((EObject)eObject, null, getTransformationType()); } return info; } }