/* *************************************************************************************** * 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.regression.client; import com.espertech.esper.plugin.PlugInAggregationMultiFunctionDeclarationContext; import com.espertech.esper.plugin.PlugInAggregationMultiFunctionFactory; import com.espertech.esper.plugin.PlugInAggregationMultiFunctionHandler; import com.espertech.esper.plugin.PlugInAggregationMultiFunctionValidationContext; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class SupportAggMFFactory implements PlugInAggregationMultiFunctionFactory { private static Set<SupportAggMFFactory> factories = new HashSet<SupportAggMFFactory>(); private static List<PlugInAggregationMultiFunctionDeclarationContext> functionDeclContexts = new ArrayList<PlugInAggregationMultiFunctionDeclarationContext>(); private static List<PlugInAggregationMultiFunctionValidationContext> functionHandlerValidationContexts = new ArrayList<PlugInAggregationMultiFunctionValidationContext>(); public static void reset() { factories.clear(); functionDeclContexts.clear(); functionHandlerValidationContexts.clear(); } public static Set<SupportAggMFFactory> getFactories() { return factories; } public static List<PlugInAggregationMultiFunctionDeclarationContext> getFunctionDeclContexts() { return functionDeclContexts; } public static List<PlugInAggregationMultiFunctionValidationContext> getFunctionHandlerValidationContexts() { return functionHandlerValidationContexts; } public void addAggregationFunction(PlugInAggregationMultiFunctionDeclarationContext declarationContext) { factories.add(this); functionDeclContexts.add(declarationContext); } public SupportAggMFFactory() { factories.add(this); } public PlugInAggregationMultiFunctionHandler validateGetHandler(PlugInAggregationMultiFunctionValidationContext validationContext) { functionHandlerValidationContexts.add(validationContext); return new SupportAggMFHandler(validationContext); } }