All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rapture.kernel.StructuredApiImplWrapper Maven / Gradle / Ivy

There is a newer version: 3.0.4
Show newest version
/**
 * The MIT License (MIT)
 *
 * Copyright (C) 2011-2016 Incapture Technologies LLC
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

/**
 * This is an autogenerated file. You should not edit this file as any changes
 * will be overwritten.
 */

package rapture.kernel;

import org.apache.log4j.Logger;

import java.util.List;
import java.util.Map;

import rapture.common.api.StructuredApi;
import rapture.common.CallingContext;
import rapture.common.RaptureEntitlementsContext;

import rapture.common.hooks.CallName;

import rapture.common.model.BasePayload;
import rapture.common.EntitlementSet;
import rapture.kernel.context.ContextValidator;

import rapture.common.StoredProcedureParams;
import rapture.common.StoredProcedureResponse;
import rapture.common.TableIndex;
import rapture.common.StructuredRepoConfig;
import rapture.common.ForeignKey;

import rapture.common.shared.structured.CreateStructuredRepoPayload;

import rapture.common.shared.structured.DeleteStructuredRepoPayload;

import rapture.common.shared.structured.StructuredRepoExistsPayload;

import rapture.common.shared.structured.GetStructuredRepoConfigPayload;

import rapture.common.shared.structured.GetStructuredRepoConfigsPayload;

import rapture.common.shared.structured.CreateTableUsingSqlPayload;

import rapture.common.shared.structured.CreateTablePayload;

import rapture.common.shared.structured.DropTablePayload;

import rapture.common.shared.structured.TableExistsPayload;

import rapture.common.shared.structured.GetSchemasPayload;

import rapture.common.shared.structured.GetTablesPayload;

import rapture.common.shared.structured.DescribeTablePayload;

import rapture.common.shared.structured.AddTableColumnsPayload;

import rapture.common.shared.structured.DeleteTableColumnsPayload;

import rapture.common.shared.structured.UpdateTableColumnsPayload;

import rapture.common.shared.structured.RenameTableColumnsPayload;

import rapture.common.shared.structured.CreateIndexPayload;

import rapture.common.shared.structured.DropIndexPayload;

import rapture.common.shared.structured.GetIndexesPayload;

import rapture.common.shared.structured.SelectJoinedRowsPayload;

import rapture.common.shared.structured.SelectUsingSqlPayload;

import rapture.common.shared.structured.SelectRowsPayload;

import rapture.common.shared.structured.InsertUsingSqlPayload;

import rapture.common.shared.structured.InsertRowPayload;

import rapture.common.shared.structured.InsertRowsPayload;

import rapture.common.shared.structured.DeleteUsingSqlPayload;

import rapture.common.shared.structured.DeleteRowsPayload;

import rapture.common.shared.structured.UpdateUsingSqlPayload;

import rapture.common.shared.structured.UpdateRowsPayload;

import rapture.common.shared.structured.BeginPayload;

import rapture.common.shared.structured.CommitPayload;

import rapture.common.shared.structured.RollbackPayload;

import rapture.common.shared.structured.AbortPayload;

import rapture.common.shared.structured.GetTransactionsPayload;

import rapture.common.shared.structured.GetDdlPayload;

import rapture.common.shared.structured.GetCursorUsingSqlPayload;

import rapture.common.shared.structured.GetCursorPayload;

import rapture.common.shared.structured.GetCursorForJoinPayload;

import rapture.common.shared.structured.NextPayload;

import rapture.common.shared.structured.PreviousPayload;

import rapture.common.shared.structured.CloseCursorPayload;

import rapture.common.shared.structured.CreateProcedureCallUsingSqlPayload;

import rapture.common.shared.structured.CallProcedurePayload;

import rapture.common.shared.structured.DropProcedureUsingSqlPayload;

import rapture.common.shared.structured.GetPrimaryKeyPayload;

import rapture.common.shared.structured.GetForeignKeysPayload;


/**
 * This class is a wrapper around the class {@link StructuredApiImpl}. This is an auto-generated class that gives us the ability to add hooks such as entitlmeent
 * checks before each function call in the implementation. Since we always want to call these hooks, an instance of this class should be used 
 * (in {@link Kernel}) instead of using the implementation directly.
 * implementation directly. 
 *
 */
@SuppressWarnings("all")
public class StructuredApiImplWrapper implements StructuredApi, KernelApi {
    private static final Logger log = Logger.getLogger(StructuredApiImplWrapper.class);
    private StructuredApiImpl apiImpl;

    public StructuredApiImplWrapper(Kernel kernel) {
        apiImpl = new StructuredApiImpl(kernel);
    }

    /**
     * Returns the underlying implementation object. This should be used when a call is deliberately bypassing entitlement checks.
     * @return {@link Structured}
     */
    public StructuredApiImpl getTrusted() {
        return apiImpl;
    }

    @Override
    public void start() {
        apiImpl.start();
    }

    /**
    * 
    */
    @Override
    public void createStructuredRepo(CallingContext context, String uri, String config) {
        long functionStartTime = System.currentTimeMillis();
       
        CreateStructuredRepoPayload requestObj = new CreateStructuredRepoPayload();
        requestObj.setContext(context);
        requestObj.setUri(uri);
        requestObj.setConfig(config);
        ContextValidator.validateContext(context, EntitlementSet.Structured_createStructuredRepo, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_createStructuredRepo);
        apiImpl.createStructuredRepo(context, uri, config);    Kernel.getApiHooksService().post(context, CallName.Structured_createStructuredRepo);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createStructuredRepo.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createStructuredRepo.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void deleteStructuredRepo(CallingContext context, String uri) {
        long functionStartTime = System.currentTimeMillis();
       
        DeleteStructuredRepoPayload requestObj = new DeleteStructuredRepoPayload();
        requestObj.setContext(context);
        requestObj.setUri(uri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_deleteStructuredRepo, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_deleteStructuredRepo);
        apiImpl.deleteStructuredRepo(context, uri);    Kernel.getApiHooksService().post(context, CallName.Structured_deleteStructuredRepo);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteStructuredRepo.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteStructuredRepo.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public Boolean structuredRepoExists(CallingContext context, String uri) {
        long functionStartTime = System.currentTimeMillis();
       
        StructuredRepoExistsPayload requestObj = new StructuredRepoExistsPayload();
        requestObj.setContext(context);
        requestObj.setUri(uri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_structuredRepoExists, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_structuredRepoExists);
        Boolean returnValue = apiImpl.structuredRepoExists(context, uri);    Kernel.getApiHooksService().post(context, CallName.Structured_structuredRepoExists);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.structuredRepoExists.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.structuredRepoExists.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public StructuredRepoConfig getStructuredRepoConfig(CallingContext context, String uri) {
        long functionStartTime = System.currentTimeMillis();
       
        GetStructuredRepoConfigPayload requestObj = new GetStructuredRepoConfigPayload();
        requestObj.setContext(context);
        requestObj.setUri(uri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getStructuredRepoConfig, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getStructuredRepoConfig);
        StructuredRepoConfig returnValue = apiImpl.getStructuredRepoConfig(context, uri);    Kernel.getApiHooksService().post(context, CallName.Structured_getStructuredRepoConfig);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getStructuredRepoConfig.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getStructuredRepoConfig.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List getStructuredRepoConfigs(CallingContext context) {
        long functionStartTime = System.currentTimeMillis();
       
        GetStructuredRepoConfigsPayload requestObj = new GetStructuredRepoConfigsPayload();
        requestObj.setContext(context);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getStructuredRepoConfigs, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getStructuredRepoConfigs);
        List returnValue = apiImpl.getStructuredRepoConfigs(context);    Kernel.getApiHooksService().post(context, CallName.Structured_getStructuredRepoConfigs);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getStructuredRepoConfigs.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getStructuredRepoConfigs.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public void createTableUsingSql(CallingContext context, String schema, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        CreateTableUsingSqlPayload requestObj = new CreateTableUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setSchema(schema);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_createTableUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_createTableUsingSql);
        apiImpl.createTableUsingSql(context, schema, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_createTableUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createTableUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createTableUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void createTable(CallingContext context, String tableUri, Map columns) {
        long functionStartTime = System.currentTimeMillis();
       
        CreateTablePayload requestObj = new CreateTablePayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumns(columns);
        ContextValidator.validateContext(context, EntitlementSet.Structured_createTable, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_createTable);
        apiImpl.createTable(context, tableUri, columns);    Kernel.getApiHooksService().post(context, CallName.Structured_createTable);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createTable.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createTable.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void dropTable(CallingContext context, String tableUri) {
        long functionStartTime = System.currentTimeMillis();
       
        DropTablePayload requestObj = new DropTablePayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_dropTable, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_dropTable);
        apiImpl.dropTable(context, tableUri);    Kernel.getApiHooksService().post(context, CallName.Structured_dropTable);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.dropTable.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.dropTable.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public Boolean tableExists(CallingContext context, String tableUri) {
        long functionStartTime = System.currentTimeMillis();
       
        TableExistsPayload requestObj = new TableExistsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_tableExists, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_tableExists);
        Boolean returnValue = apiImpl.tableExists(context, tableUri);    Kernel.getApiHooksService().post(context, CallName.Structured_tableExists);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.tableExists.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.tableExists.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List getSchemas(CallingContext context) {
        long functionStartTime = System.currentTimeMillis();
       
        GetSchemasPayload requestObj = new GetSchemasPayload();
        requestObj.setContext(context);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getSchemas, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getSchemas);
        List returnValue = apiImpl.getSchemas(context);    Kernel.getApiHooksService().post(context, CallName.Structured_getSchemas);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getSchemas.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getSchemas.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List getTables(CallingContext context, String repoUri) {
        long functionStartTime = System.currentTimeMillis();
       
        GetTablesPayload requestObj = new GetTablesPayload();
        requestObj.setContext(context);
        requestObj.setRepoUri(repoUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getTables, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getTables);
        List returnValue = apiImpl.getTables(context, repoUri);    Kernel.getApiHooksService().post(context, CallName.Structured_getTables);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getTables.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getTables.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public Map describeTable(CallingContext context, String tableUri) {
        long functionStartTime = System.currentTimeMillis();
       
        DescribeTablePayload requestObj = new DescribeTablePayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_describeTable, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_describeTable);
        Map returnValue = apiImpl.describeTable(context, tableUri);    Kernel.getApiHooksService().post(context, CallName.Structured_describeTable);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.describeTable.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.describeTable.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public void addTableColumns(CallingContext context, String tableUri, Map columns) {
        long functionStartTime = System.currentTimeMillis();
       
        AddTableColumnsPayload requestObj = new AddTableColumnsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumns(columns);
        ContextValidator.validateContext(context, EntitlementSet.Structured_addTableColumns, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_addTableColumns);
        apiImpl.addTableColumns(context, tableUri, columns);    Kernel.getApiHooksService().post(context, CallName.Structured_addTableColumns);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.addTableColumns.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.addTableColumns.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void deleteTableColumns(CallingContext context, String tableUri, List columnNames) {
        long functionStartTime = System.currentTimeMillis();
       
        DeleteTableColumnsPayload requestObj = new DeleteTableColumnsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumnNames(columnNames);
        ContextValidator.validateContext(context, EntitlementSet.Structured_deleteTableColumns, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_deleteTableColumns);
        apiImpl.deleteTableColumns(context, tableUri, columnNames);    Kernel.getApiHooksService().post(context, CallName.Structured_deleteTableColumns);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteTableColumns.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteTableColumns.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void updateTableColumns(CallingContext context, String tableUri, Map columns) {
        long functionStartTime = System.currentTimeMillis();
       
        UpdateTableColumnsPayload requestObj = new UpdateTableColumnsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumns(columns);
        ContextValidator.validateContext(context, EntitlementSet.Structured_updateTableColumns, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_updateTableColumns);
        apiImpl.updateTableColumns(context, tableUri, columns);    Kernel.getApiHooksService().post(context, CallName.Structured_updateTableColumns);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.updateTableColumns.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.updateTableColumns.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void renameTableColumns(CallingContext context, String tableUri, Map columnNames) {
        long functionStartTime = System.currentTimeMillis();
       
        RenameTableColumnsPayload requestObj = new RenameTableColumnsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumnNames(columnNames);
        ContextValidator.validateContext(context, EntitlementSet.Structured_renameTableColumns, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_renameTableColumns);
        apiImpl.renameTableColumns(context, tableUri, columnNames);    Kernel.getApiHooksService().post(context, CallName.Structured_renameTableColumns);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.renameTableColumns.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.renameTableColumns.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void createIndex(CallingContext context, String tableUri, String indexName, List columnNames) {
        long functionStartTime = System.currentTimeMillis();
       
        CreateIndexPayload requestObj = new CreateIndexPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setIndexName(indexName);
        requestObj.setColumnNames(columnNames);
        ContextValidator.validateContext(context, EntitlementSet.Structured_createIndex, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_createIndex);
        apiImpl.createIndex(context, tableUri, indexName, columnNames);    Kernel.getApiHooksService().post(context, CallName.Structured_createIndex);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createIndex.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createIndex.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void dropIndex(CallingContext context, String tableUri, String indexName) {
        long functionStartTime = System.currentTimeMillis();
       
        DropIndexPayload requestObj = new DropIndexPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setIndexName(indexName);
        ContextValidator.validateContext(context, EntitlementSet.Structured_dropIndex, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_dropIndex);
        apiImpl.dropIndex(context, tableUri, indexName);    Kernel.getApiHooksService().post(context, CallName.Structured_dropIndex);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.dropIndex.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.dropIndex.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public List getIndexes(CallingContext context, String tableUri) {
        long functionStartTime = System.currentTimeMillis();
       
        GetIndexesPayload requestObj = new GetIndexesPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getIndexes, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getIndexes);
        List returnValue = apiImpl.getIndexes(context, tableUri);    Kernel.getApiHooksService().post(context, CallName.Structured_getIndexes);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getIndexes.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getIndexes.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List> selectJoinedRows(CallingContext context, List tableUris, List columnNames, String from, String where, List order, Boolean ascending, int limit) {
        long functionStartTime = System.currentTimeMillis();
       
        SelectJoinedRowsPayload requestObj = new SelectJoinedRowsPayload();
        requestObj.setContext(context);
        requestObj.setTableUris(tableUris);
        requestObj.setColumnNames(columnNames);
        requestObj.setFrom(from);
        requestObj.setWhere(where);
        requestObj.setOrder(order);
        requestObj.setAscending(ascending);
        requestObj.setLimit(limit);
        ContextValidator.validateContext(context, EntitlementSet.Structured_selectJoinedRows, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_selectJoinedRows);
        List> returnValue = apiImpl.selectJoinedRows(context, tableUris, columnNames, from, where, order, ascending, limit);    Kernel.getApiHooksService().post(context, CallName.Structured_selectJoinedRows);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.selectJoinedRows.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.selectJoinedRows.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List> selectUsingSql(CallingContext context, String schema, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        SelectUsingSqlPayload requestObj = new SelectUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setSchema(schema);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_selectUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_selectUsingSql);
        List> returnValue = apiImpl.selectUsingSql(context, schema, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_selectUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.selectUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.selectUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List> selectRows(CallingContext context, String tableUri, List columnNames, String where, List order, Boolean ascending, int limit) {
        long functionStartTime = System.currentTimeMillis();
       
        SelectRowsPayload requestObj = new SelectRowsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumnNames(columnNames);
        requestObj.setWhere(where);
        requestObj.setOrder(order);
        requestObj.setAscending(ascending);
        requestObj.setLimit(limit);
        ContextValidator.validateContext(context, EntitlementSet.Structured_selectRows, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_selectRows);
        List> returnValue = apiImpl.selectRows(context, tableUri, columnNames, where, order, ascending, limit);    Kernel.getApiHooksService().post(context, CallName.Structured_selectRows);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.selectRows.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.selectRows.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public void insertUsingSql(CallingContext context, String schema, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        InsertUsingSqlPayload requestObj = new InsertUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setSchema(schema);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_insertUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_insertUsingSql);
        apiImpl.insertUsingSql(context, schema, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_insertUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.insertUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.insertUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void insertRow(CallingContext context, String tableUri, Map values) {
        long functionStartTime = System.currentTimeMillis();
       
        InsertRowPayload requestObj = new InsertRowPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setValues(values);
        ContextValidator.validateContext(context, EntitlementSet.Structured_insertRow, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_insertRow);
        apiImpl.insertRow(context, tableUri, values);    Kernel.getApiHooksService().post(context, CallName.Structured_insertRow);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.insertRow.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.insertRow.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void insertRows(CallingContext context, String tableUri, List> values) {
        long functionStartTime = System.currentTimeMillis();
       
        InsertRowsPayload requestObj = new InsertRowsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setValues(values);
        ContextValidator.validateContext(context, EntitlementSet.Structured_insertRows, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_insertRows);
        apiImpl.insertRows(context, tableUri, values);    Kernel.getApiHooksService().post(context, CallName.Structured_insertRows);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.insertRows.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.insertRows.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void deleteUsingSql(CallingContext context, String schema, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        DeleteUsingSqlPayload requestObj = new DeleteUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setSchema(schema);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_deleteUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_deleteUsingSql);
        apiImpl.deleteUsingSql(context, schema, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_deleteUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void deleteRows(CallingContext context, String tableUri, String where) {
        long functionStartTime = System.currentTimeMillis();
       
        DeleteRowsPayload requestObj = new DeleteRowsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setWhere(where);
        ContextValidator.validateContext(context, EntitlementSet.Structured_deleteRows, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_deleteRows);
        apiImpl.deleteRows(context, tableUri, where);    Kernel.getApiHooksService().post(context, CallName.Structured_deleteRows);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteRows.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.deleteRows.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void updateUsingSql(CallingContext context, String schema, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        UpdateUsingSqlPayload requestObj = new UpdateUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setSchema(schema);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_updateUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_updateUsingSql);
        apiImpl.updateUsingSql(context, schema, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_updateUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.updateUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.updateUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void updateRows(CallingContext context, String tableUri, Map values, String where) {
        long functionStartTime = System.currentTimeMillis();
       
        UpdateRowsPayload requestObj = new UpdateRowsPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setValues(values);
        requestObj.setWhere(where);
        ContextValidator.validateContext(context, EntitlementSet.Structured_updateRows, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_updateRows);
        apiImpl.updateRows(context, tableUri, values, where);    Kernel.getApiHooksService().post(context, CallName.Structured_updateRows);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.updateRows.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.updateRows.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public Boolean begin(CallingContext context) {
        long functionStartTime = System.currentTimeMillis();
       
        BeginPayload requestObj = new BeginPayload();
        requestObj.setContext(context);
        ContextValidator.validateContext(context, EntitlementSet.Structured_begin, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_begin);
        Boolean returnValue = apiImpl.begin(context);    Kernel.getApiHooksService().post(context, CallName.Structured_begin);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.begin.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.begin.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public Boolean commit(CallingContext context) {
        long functionStartTime = System.currentTimeMillis();
       
        CommitPayload requestObj = new CommitPayload();
        requestObj.setContext(context);
        ContextValidator.validateContext(context, EntitlementSet.Structured_commit, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_commit);
        Boolean returnValue = apiImpl.commit(context);    Kernel.getApiHooksService().post(context, CallName.Structured_commit);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.commit.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.commit.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public Boolean rollback(CallingContext context) {
        long functionStartTime = System.currentTimeMillis();
       
        RollbackPayload requestObj = new RollbackPayload();
        requestObj.setContext(context);
        ContextValidator.validateContext(context, EntitlementSet.Structured_rollback, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_rollback);
        Boolean returnValue = apiImpl.rollback(context);    Kernel.getApiHooksService().post(context, CallName.Structured_rollback);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.rollback.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.rollback.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public Boolean abort(CallingContext context, String transactionId) {
        long functionStartTime = System.currentTimeMillis();
       
        AbortPayload requestObj = new AbortPayload();
        requestObj.setContext(context);
        requestObj.setTransactionId(transactionId);
        ContextValidator.validateContext(context, EntitlementSet.Structured_abort, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_abort);
        Boolean returnValue = apiImpl.abort(context, transactionId);    Kernel.getApiHooksService().post(context, CallName.Structured_abort);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.abort.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.abort.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List getTransactions(CallingContext context) {
        long functionStartTime = System.currentTimeMillis();
       
        GetTransactionsPayload requestObj = new GetTransactionsPayload();
        requestObj.setContext(context);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getTransactions, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getTransactions);
        List returnValue = apiImpl.getTransactions(context);    Kernel.getApiHooksService().post(context, CallName.Structured_getTransactions);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getTransactions.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getTransactions.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public String getDdl(CallingContext context, String uri, Boolean includeTableData) {
        long functionStartTime = System.currentTimeMillis();
       
        GetDdlPayload requestObj = new GetDdlPayload();
        requestObj.setContext(context);
        requestObj.setUri(uri);
        requestObj.setIncludeTableData(includeTableData);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getDdl, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getDdl);
        String returnValue = apiImpl.getDdl(context, uri, includeTableData);    Kernel.getApiHooksService().post(context, CallName.Structured_getDdl);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getDdl.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getDdl.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public String getCursorUsingSql(CallingContext context, String schema, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        GetCursorUsingSqlPayload requestObj = new GetCursorUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setSchema(schema);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getCursorUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getCursorUsingSql);
        String returnValue = apiImpl.getCursorUsingSql(context, schema, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_getCursorUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getCursorUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getCursorUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public String getCursor(CallingContext context, String tableUri, List columnNames, String where, List order, Boolean ascending, int limit) {
        long functionStartTime = System.currentTimeMillis();
       
        GetCursorPayload requestObj = new GetCursorPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setColumnNames(columnNames);
        requestObj.setWhere(where);
        requestObj.setOrder(order);
        requestObj.setAscending(ascending);
        requestObj.setLimit(limit);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getCursor, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getCursor);
        String returnValue = apiImpl.getCursor(context, tableUri, columnNames, where, order, ascending, limit);    Kernel.getApiHooksService().post(context, CallName.Structured_getCursor);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getCursor.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getCursor.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public String getCursorForJoin(CallingContext context, List tableUris, List columnNames, String from, String where, List order, Boolean ascending, int limit) {
        long functionStartTime = System.currentTimeMillis();
       
        GetCursorForJoinPayload requestObj = new GetCursorForJoinPayload();
        requestObj.setContext(context);
        requestObj.setTableUris(tableUris);
        requestObj.setColumnNames(columnNames);
        requestObj.setFrom(from);
        requestObj.setWhere(where);
        requestObj.setOrder(order);
        requestObj.setAscending(ascending);
        requestObj.setLimit(limit);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getCursorForJoin, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getCursorForJoin);
        String returnValue = apiImpl.getCursorForJoin(context, tableUris, columnNames, from, where, order, ascending, limit);    Kernel.getApiHooksService().post(context, CallName.Structured_getCursorForJoin);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getCursorForJoin.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getCursorForJoin.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List> next(CallingContext context, String tableUri, String cursorId, int count) {
        long functionStartTime = System.currentTimeMillis();
       
        NextPayload requestObj = new NextPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setCursorId(cursorId);
        requestObj.setCount(count);
        ContextValidator.validateContext(context, EntitlementSet.Structured_next, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_next);
        List> returnValue = apiImpl.next(context, tableUri, cursorId, count);    Kernel.getApiHooksService().post(context, CallName.Structured_next);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.next.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.next.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List> previous(CallingContext context, String tableUri, String cursorId, int count) {
        long functionStartTime = System.currentTimeMillis();
       
        PreviousPayload requestObj = new PreviousPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setCursorId(cursorId);
        requestObj.setCount(count);
        ContextValidator.validateContext(context, EntitlementSet.Structured_previous, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_previous);
        List> returnValue = apiImpl.previous(context, tableUri, cursorId, count);    Kernel.getApiHooksService().post(context, CallName.Structured_previous);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.previous.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.previous.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public void closeCursor(CallingContext context, String tableUri, String cursorId) {
        long functionStartTime = System.currentTimeMillis();
       
        CloseCursorPayload requestObj = new CloseCursorPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        requestObj.setCursorId(cursorId);
        ContextValidator.validateContext(context, EntitlementSet.Structured_closeCursor, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_closeCursor);
        apiImpl.closeCursor(context, tableUri, cursorId);    Kernel.getApiHooksService().post(context, CallName.Structured_closeCursor);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.closeCursor.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.closeCursor.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public void createProcedureCallUsingSql(CallingContext context, String procUri, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        CreateProcedureCallUsingSqlPayload requestObj = new CreateProcedureCallUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setProcUri(procUri);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_createProcedureCallUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_createProcedureCallUsingSql);
        apiImpl.createProcedureCallUsingSql(context, procUri, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_createProcedureCallUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createProcedureCallUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.createProcedureCallUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public StoredProcedureResponse callProcedure(CallingContext context, String procUri, StoredProcedureParams params) {
        long functionStartTime = System.currentTimeMillis();
       
        CallProcedurePayload requestObj = new CallProcedurePayload();
        requestObj.setContext(context);
        requestObj.setProcUri(procUri);
        requestObj.setParams(params);
        ContextValidator.validateContext(context, EntitlementSet.Structured_callProcedure, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_callProcedure);
        StoredProcedureResponse returnValue = apiImpl.callProcedure(context, procUri, params);    Kernel.getApiHooksService().post(context, CallName.Structured_callProcedure);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.callProcedure.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.callProcedure.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public void dropProcedureUsingSql(CallingContext context, String procUri, String rawSql) {
        long functionStartTime = System.currentTimeMillis();
       
        DropProcedureUsingSqlPayload requestObj = new DropProcedureUsingSqlPayload();
        requestObj.setContext(context);
        requestObj.setProcUri(procUri);
        requestObj.setRawSql(rawSql);
        ContextValidator.validateContext(context, EntitlementSet.Structured_dropProcedureUsingSql, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_dropProcedureUsingSql);
        apiImpl.dropProcedureUsingSql(context, procUri, rawSql);    Kernel.getApiHooksService().post(context, CallName.Structured_dropProcedureUsingSql);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.dropProcedureUsingSql.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.dropProcedureUsingSql.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
    }

    /**
    * 
    */
    @Override
    public String getPrimaryKey(CallingContext context, String tableUri) {
        long functionStartTime = System.currentTimeMillis();
       
        GetPrimaryKeyPayload requestObj = new GetPrimaryKeyPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getPrimaryKey, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getPrimaryKey);
        String returnValue = apiImpl.getPrimaryKey(context, tableUri);    Kernel.getApiHooksService().post(context, CallName.Structured_getPrimaryKey);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getPrimaryKey.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getPrimaryKey.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

    /**
    * 
    */
    @Override
    public List getForeignKeys(CallingContext context, String tableUri) {
        long functionStartTime = System.currentTimeMillis();
       
        GetForeignKeysPayload requestObj = new GetForeignKeysPayload();
        requestObj.setContext(context);
        requestObj.setTableUri(tableUri);
        ContextValidator.validateContext(context, EntitlementSet.Structured_getForeignKeys, requestObj); 
        
        long preToPostStartTime = System.currentTimeMillis();
        
        Kernel.getApiHooksService().pre(context, CallName.Structured_getForeignKeys);
        List returnValue = apiImpl.getForeignKeys(context, tableUri);    Kernel.getApiHooksService().post(context, CallName.Structured_getForeignKeys);
        
        long endFunctionTime = System.currentTimeMillis();
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getForeignKeys.fullFunctionTime.succeeded", (endFunctionTime-functionStartTime));
        Kernel.getMetricsService().recordTimeDifference("apiMetrics.structuredApi.getForeignKeys.preToPostTime.succeeded", (endFunctionTime-preToPostStartTime));
            
        return returnValue;}

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy