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

com.espertech.esper.client.dataflow.EPDataFlowRuntime Maven / Gradle / Ivy

There is a newer version: 7.1.0
Show newest version
/*
 * *************************************************************************************
 *  Copyright (C) 2006-2015 EsperTech, Inc. All rights reserved.                       *
 *  http://www.espertech.com/esper                                                     *
 *  http://www.espertech.com                                                           *
 *  ---------------------------------------------------------------------------------- *
 *  The software in this package is published under the terms of the GPL license       *
 *  a copy of which has been included with this distribution in the license.txt file.  *
 * *************************************************************************************
 */

package com.espertech.esper.client.dataflow;

import java.util.Map;

/**
 * Data flow runtime for instantiating data flows.
 */
public interface EPDataFlowRuntime {

    /**
     * Returns a descriptor for the given data flow, or null if the data flow has not been declared.
     * @param dataFlowName data flow name
     * @return data flow descriptor
     */
    public EPDataFlowDescriptor getDataFlow(String dataFlowName);

    /**
     * Returns the names of all declared data flows.
     * @return data flow names
     */
    public String[] getDataFlows();

    /**
     * Instantiate a data flow.
     * @param dataFlowName name of data flow to instantiate
     * @return data flow instance
     * @throws EPDataFlowInstantiationException when the instantiation failed
     */
    public EPDataFlowInstance instantiate(String dataFlowName) throws EPDataFlowInstantiationException;

    /**
     * Instantiate a data flow, with options.
     * @param dataFlowName name of data flow to instantiate
     * @param options populate options to control parameterization, instantiation etc.
     * @return data flow instance
     * @throws EPDataFlowInstantiationException when the instantiation failed
     */
    public EPDataFlowInstance instantiate(String dataFlowName, EPDataFlowInstantiationOptions options) throws EPDataFlowInstantiationException;

    /**
     * Save an existing data flow configuration (data flow name and its options) for later retrieval.
     * @param dataflowConfigName configuration name to save, must be unique
     * @param dataFlowName data flow name
     * @param options options object
     * @throws EPDataFlowAlreadyExistsException if the configuration name is already used
     * @throws EPDataFlowNotFoundException if the data flow by this name does not exist
     */
    public void saveConfiguration(String dataflowConfigName, String dataFlowName, EPDataFlowInstantiationOptions options) throws EPDataFlowAlreadyExistsException, EPDataFlowNotFoundException;

    /**
     * Returns the names of a saved data flow configurations.
     * @return data flow configuration names
     */
    public String[] getSavedConfigurations();

    /**
     * Returns a saved dataflow configuration or null if it is not found.
     * @param configurationName name to find
     * @return data flow configuration
     */
    public EPDataFlowSavedConfiguration getSavedConfiguration(String configurationName);

    /**
     * Instantiate a data flow from a saved configuration.
     * @param configurationName configuration name
     * @return instance
     * @throws EPDataFlowInstantiationException if the configuration name could not be found
     */
    public EPDataFlowInstance instantiateSavedConfiguration(String configurationName) throws EPDataFlowInstantiationException;

    /**
     * Remove a previously saved data flow configuration.
     * @param configurationName to remove
     * @return indicator whether found and removed
     */
    public boolean removeSavedConfiguration(String configurationName);

    /**
     * Save an existing instance with the runtime, for later retrieval.
     * @param instanceName name to use to save, must be unique among currently saved instances
     * @param instance saved
     * @throws EPDataFlowAlreadyExistsException if an instance by this name already exists
     */
    public void saveInstance(String instanceName, EPDataFlowInstance instance) throws EPDataFlowAlreadyExistsException;

    /**
     * Returns the instance names of a saved data flow instances.
     * @return data flow instance names
     */
    public String[] getSavedInstances();

    /**
     * Returns a specific saved data flow instance, or null if it has not been found
     * @param instanceName to look for
     * @return instance
     */
    public EPDataFlowInstance getSavedInstance(String instanceName);

    /**
     * Remove an instance previously saved.
     * @param instanceName to be removed
     * @return indicator whether found or not
     */
    public boolean removeSavedInstance(String instanceName);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy