/*
* 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.sql;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
/**
* SqlProcedureAspect
*
* @since 8.0
*/
public interface SqlProcedureAspect extends
SqlAspect {
// These are mapping types for which the procedure can be atarget.
interface MAPPINGS {
public static final int SQL_TRANSFORM = 1;
}
/**
* Check if table represents a procedure in a virtual model
*
* @return true if the procedure is virtual
*/
boolean isVirtual(EObject eObject);
/**
* Check if this aspect represents a procedure that is a funtion.
*
* @param eObject
* The <code>EObject</code> for procedure object
* @return true if the procedure is a function, else false.
*/
boolean isFunction(EObject eObject);
/**
* Get a list of parameters for the given procedure
*
* @param eObject
* The <code>EObject</code> for procedure object
* @return a list of parameters on the procedure
*/
List getParameters(EObject eObject);
/**
* Get the resultSet on a given procedure.
*
* @param eObject
* The <code>EObject</code> for procedure object
* @return The ResultSet on the procedure
*/
Object getResult(EObject eObject);
/**
* Returns an integer value indicating the number of updates
* the user has specified will occur within the supplied procedure.
*
* @param eObject
* A physical stored procedure.
* @return The update count value.
* @since 5.5.3
*/
int getUpdateCount(EObject eObject);
/**
* Check if the procedure is mappable for the given mapping type.
*
* @param eObject
* The <code>EObject</code> whose mapability is checked
* @param mappinType
* The mapping type being checked.
* @return true if mappable else false
*/
boolean isMappable(EObject eObject,
int mappingType);
/**
* Check if the procedure is can be a transformation source for the given target.
*
* @param source
* The <code>EObject</code> intends to be a transformation source
* @param target
* The <code>EObject</code> that is the target of the transformation
* @return true if can be a source else false
*/
boolean canBeTransformationSource(EObject source,
EObject target);
/**
* Check if the procedure can accept the given transformation source.
*
* @param target
* The <code>EObject</code> that is the target of the transformation
* @param source
* The <code>EObject</code> intends to be a transformation source
* @return true if can be a source else false
*/
boolean canAcceptTransformationSource(EObject target,
EObject source);
}