package com.ca.chorus.server.translator.async; import org.teiid.language.Call; import org.teiid.metadata.MetadataFactory; import org.teiid.metadata.Procedure; import org.teiid.metadata.ProcedureParameter; import org.teiid.metadata.ProcedureParameter.Type; import org.teiid.metadata.RuntimeMetadata; import org.teiid.translator.ExecutionContext; import org.teiid.translator.ExecutionFactory; import org.teiid.translator.ProcedureExecution; import org.teiid.translator.Translator; import org.teiid.translator.TranslatorException; import org.teiid.translator.TypeFacility; @Translator(name = "random") public class RandomExecutionFactory extends ExecutionFactory { public RandomExecutionFactory() { setSourceRequired(false); setSourceRequiredForMetadata(false); } @Override public void getMetadata(final MetadataFactory metadataFactory, final Void conn) throws TranslatorException { final Procedure randomNumberStoredProc = metadataFactory.addProcedure("random_number"); final ProcedureParameter dummyParam = metadataFactory.addProcedureParameter("dummy", TypeFacility.getDataTypeName(Integer.class), Type.In, randomNumberStoredProc); dummyParam.setOptional(true); metadataFactory.addProcedureResultSetColumn("random_number", TypeFacility.getDataTypeName(Integer.class), randomNumberStoredProc); } @Override public ProcedureExecution createProcedureExecution(final Call command, final ExecutionContext executionContext, final RuntimeMetadata metadata, final Void connection) throws TranslatorException { return new RandomNumberStoredProcedureExecution(executionContext); } }