/* * ************************************************************************************* * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * 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.regression.client; import com.espertech.esper.epl.expression.ExprNode; import com.espertech.esper.pattern.*; import com.espertech.esper.pattern.observer.*; import com.espertech.esper.client.EPException; import java.util.List; public class MyFileExistsObserverFactory extends ObserverFactorySupport { protected ExprNode filenameExpression; protected MatchedEventConvertor convertor; public void setObserverParameters(List<ExprNode> expressionParameters, MatchedEventConvertor convertor) throws ObserverParameterException { String message = "File exists observer takes a single string filename parameter"; if (expressionParameters.size() != 1) { throw new ObserverParameterException(message); } if (!(expressionParameters.get(0).getExprEvaluator().getType() == String.class)) { throw new ObserverParameterException(message); } this.filenameExpression = expressionParameters.get(0); this.convertor = convertor; } public EventObserver makeObserver(PatternAgentInstanceContext context, MatchedEventMap beginState, ObserverEventEvaluator observerEventEvaluator, EvalStateNodeNumber stateNodeId, Object observerState) { Object filename = PatternExpressionUtil.evaluate("File-exists observer ", beginState, filenameExpression, convertor, null); if (filename == null) { throw new EPException("Filename evaluated to null"); } return new MyFileExistsObserver(beginState, observerEventEvaluator, filename.toString()); } }