com.espertech.esper.epl.variable.VariableStateHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of esper Show documentation
Show all versions of esper Show documentation
Complex event processing and event series analysis component
/*
***************************************************************************************
* Copyright (C) 2006 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.epl.variable;
import com.espertech.esper.client.EventType;
import com.espertech.esper.collection.Pair;
import com.espertech.esper.core.service.StatementExtensionSvcContext;
import java.util.Set;
/**
* Interface for a plug-in to {@link VariableService} to handle variable persistent state.
*/
public interface VariableStateHandler {
/**
* Returns the current variable state plus Boolean.TRUE if there is a current state since the variable
* may have the value of null; returns Boolean.FALSE and null if there is no current state
*
* @param variableName variable name
* @param variableNumber number of the variable
* @param type type of the variable
* @param eventType event type or null if not a variable that represents an event
* @param statementExtContext for caches etc.
* @param agentInstanceId agent instance id
* @param isConstant indicator for constant
* @return indicator whether the variable is known and it's state, or whether it doesn't have state (false)
*/
public Pair getHasState(String variableName, int variableNumber, int agentInstanceId, Class type, EventType eventType, StatementExtensionSvcContext statementExtContext, boolean isConstant);
/**
* Sets the new variable value
*
* @param variableName name of the variable
* @param variableNumber number of the variable
* @param agentInstanceId agent instance id
* @param newValue new variable value, null values allowed
*/
public void setState(String variableName, int variableNumber, int agentInstanceId, Object newValue);
public void removeState(String variableName, int variableNumber, int agentInstanceId);
public void removeVariable(String name, Set cps);
}