/*
***************************************************************************************
* 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.EventBean;
import com.espertech.esper.client.EventType;
import java.util.LinkedHashMap;
public enum ExpressionViewOAFieldEnum {
CURRENT_COUNT("current_count"),
OLDEST_TIMESTAMP("oldest_timestamp"),
NEWEST_TIMESTAMP("newest_timestamp"),
EXPIRED_COUNT("expired_count"),
VIEW_REFERENCE("view_reference"),
NEWEST_EVENT("newest_event"),
OLDEST_EVENT("oldest_event");
private final String fieldName;
private ExpressionViewOAFieldEnum(String fieldName) {
this.fieldName = fieldName;
}
public static LinkedHashMap<String, Object> asMapOfTypes(EventType eventType) {
LinkedHashMap<String, Object> builtinTypeDef = new LinkedHashMap<String, Object>();
builtinTypeDef.put(ExpressionViewOAFieldEnum.CURRENT_COUNT.fieldName, Integer.class);
builtinTypeDef.put(ExpressionViewOAFieldEnum.OLDEST_TIMESTAMP.fieldName, Long.class);
builtinTypeDef.put(ExpressionViewOAFieldEnum.NEWEST_TIMESTAMP.fieldName, Long.class);
builtinTypeDef.put(ExpressionViewOAFieldEnum.EXPIRED_COUNT.fieldName, Integer.class);
builtinTypeDef.put(ExpressionViewOAFieldEnum.VIEW_REFERENCE.fieldName, Object.class);
builtinTypeDef.put(ExpressionViewOAFieldEnum.NEWEST_EVENT.fieldName, eventType);
builtinTypeDef.put(ExpressionViewOAFieldEnum.OLDEST_EVENT.fieldName, eventType);
return builtinTypeDef;
}
public static void populate(Object[] properties,
int windowSize,
long oldestEventTimestamp,
long newestEventTimestamp,
Object viewReference,
int expiredCount,
EventBean oldestEvent,
EventBean newestEvent) {
properties[ExpressionViewOAFieldEnum.CURRENT_COUNT.ordinal()] = windowSize;
properties[ExpressionViewOAFieldEnum.OLDEST_TIMESTAMP.ordinal()] = oldestEventTimestamp;
properties[ExpressionViewOAFieldEnum.NEWEST_TIMESTAMP.ordinal()] = newestEventTimestamp;
properties[ExpressionViewOAFieldEnum.VIEW_REFERENCE.ordinal()] = viewReference;
properties[ExpressionViewOAFieldEnum.EXPIRED_COUNT.ordinal()] = expiredCount;
properties[ExpressionViewOAFieldEnum.OLDEST_EVENT.ordinal()] = oldestEvent;
properties[ExpressionViewOAFieldEnum.NEWEST_EVENT.ordinal()] = newestEvent;
}
public static Object[] getPrototypeOA() {
return new Object[ExpressionViewOAFieldEnum.values().length];
}
}