com.espertech.esper.view.window.TimeBatchViewFactoryParams 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.view.window;
import com.espertech.esper.client.EventType;
import com.espertech.esper.epl.expression.time.ExprTimePeriodEvalDeltaConstFactory;
import com.espertech.esper.view.ViewParameterException;
import java.util.Locale;
/**
* Parameters for batch views that provides common data flow parameter parsing.
*/
public class TimeBatchViewFactoryParams {
/**
* Keyword for force update, i.e. update if no data.
*/
protected static final String FORCE_UPDATE_KEYWORD = "force_update";
/**
* Keyword for starting eager, i.e. start early.
*/
protected static final String START_EAGER_KEYWORD = "start_eager";
/**
* Event type
*/
protected EventType eventType;
/**
* Number of msec before batch fires (either interval or number of events).
*/
protected ExprTimePeriodEvalDeltaConstFactory timeDeltaComputationFactory;
/**
* Indicate whether to output only if there is data, or to keep outputting empty batches.
*/
protected boolean isForceUpdate;
/**
* Indicate whether to output only if there is data, or to keep outputting empty batches.
*/
protected boolean isStartEager;
/**
* Convert keywords into isForceUpdate and isStartEager members
*
* @param keywords flow control keyword string expression
* @param errorMessage error message
* @throws ViewParameterException if parsing failed
*/
protected void processKeywords(Object keywords, String errorMessage) throws ViewParameterException {
if (!(keywords instanceof String)) {
throw new ViewParameterException(errorMessage);
}
String[] keyword = ((String) keywords).split(",");
for (int i = 0; i < keyword.length; i++) {
String keywordText = keyword[i].toLowerCase(Locale.ENGLISH).trim();
if (keywordText.length() == 0) {
continue;
}
if (keywordText.equals(FORCE_UPDATE_KEYWORD)) {
isForceUpdate = true;
} else if (keywordText.equals(START_EAGER_KEYWORD)) {
isForceUpdate = true;
isStartEager = true;
} else {
String keywordRange = FORCE_UPDATE_KEYWORD + "," + START_EAGER_KEYWORD;
throw new ViewParameterException("Time-length-combination view encountered an invalid keyword '" + keywordText + "', valid control keywords are: " + keywordRange);
}
}
}
public boolean isForceUpdate() {
return isForceUpdate;
}
public boolean isStartEager() {
return isStartEager;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy