/*
***************************************************************************************
* 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.pattern.guard;
/**
* Enum for all build-in guards.
*/
public enum GuardEnum {
/**
* Timer guard.
*/
TIMER_WITHIN("timer", "within", TimerWithinGuardFactory.class),
TIMER_WITHINMAX("timer", "withinmax", TimerWithinOrMaxCountGuardFactory.class),
WHILE_GUARD("internal", "while", ExpressionGuardFactory.class);
private final String namespace;
private final String name;
private final Class clazz;
GuardEnum(String namespace, String name, Class clazz) {
this.namespace = namespace;
this.name = name;
this.clazz = clazz;
}
/**
* Returns the namespace name.
*
* @return namespace name
*/
public String getNamespace() {
return namespace;
}
/**
* Returns name.
*
* @return short name
*/
public String getName() {
return name;
}
/**
* Gets the implementation class.
*
* @return implementation class
*/
public Class getClazz() {
return clazz;
}
/**
* Returns the enum for the given namespace and name.
*
* @param namespace - guard namespace
* @param name - guard name
* @return enum
*/
public static GuardEnum forName(String namespace, String name) {
for (GuardEnum guardEnum : GuardEnum.values()) {
if ((guardEnum.namespace.equals(namespace)) && (guardEnum.name.equals(name))) {
return guardEnum;
}
}
return null;
}
public static boolean isWhile(String namespace, String name) {
return namespace.equals(WHILE_GUARD.getNamespace()) && (name.equals(WHILE_GUARD.getName()));
}
}