/**************************************************************************************
* 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.pattern;
/**
* This class represents an 'or' operator in the evaluation tree representing any event expressions.
*/
public class EvalAuditFactoryNode extends EvalNodeFactoryBase
{
private static final long serialVersionUID = 6585271287552353699L;
private final boolean auditPattern;
private final boolean auditPatternInstance;
private final String patternExpr;
private final transient EvalAuditInstanceCount instanceCount;
private final boolean filterChildNonQuitting;
public EvalAuditFactoryNode(boolean auditPattern, boolean auditPatternInstance, String patternExpr, EvalAuditInstanceCount instanceCount, boolean filterChildNonQuitting) {
this.auditPattern = auditPattern;
this.auditPatternInstance = auditPatternInstance;
this.patternExpr = patternExpr;
this.instanceCount = instanceCount;
this.filterChildNonQuitting = filterChildNonQuitting;
}
public EvalNode makeEvalNode(PatternAgentInstanceContext agentInstanceContext) {
EvalNode child = EvalNodeUtil.makeEvalNodeSingleChild(this.getChildNodes(), agentInstanceContext);
return new EvalAuditNode(agentInstanceContext, this, child);
}
public boolean isAuditPattern() {
return auditPattern;
}
public String getPatternExpr() {
return patternExpr;
}
public final String toString()
{
return ("EvalAuditFactoryNode children=" + this.getChildNodes().size());
}
public void decreaseRefCount(EvalAuditStateNode current, PatternContext patternContext) {
if (!auditPatternInstance) {
return;
}
instanceCount.decreaseRefCount(this.getChildNodes().get(0), current, patternExpr, patternContext.getStatementName(), patternContext.getEngineURI());
}
public void increaseRefCount(EvalAuditStateNode current, PatternContext patternContext) {
if (!auditPatternInstance) {
return;
}
instanceCount.increaseRefCount(this.getChildNodes().get(0), current, patternExpr, patternContext.getStatementName(), patternContext.getEngineURI());
}
public boolean isFilterChildNonQuitting() {
return filterChildNonQuitting;
}
public boolean isStateful() {
return getChildNodes().get(0).isStateful();
}
}