class TimeManagerStateController extends AbstractModuleStateController {

    @Override
    public boolean canActivateState(Node node)
    {
        XPath xpath = StateXML.newXPath();

        try
        {
            String current = xpath.evaluate("/" + ModuleStateController.STATE_QNAME + "/:time/:current", node);
            String held = xpath.evaluate("/" + ModuleStateController.STATE_QNAME + "/:time/:held/:key", node);
            String fadeIn = xpath.evaluate("/" + ModuleStateController.STATE_QNAME + "/:time/:fade/:in", node);
            String fadeOut = xpath.evaluate("/" + ModuleStateController.STATE_QNAME + "/:time/:fade/:out", node);
            return StringUtils.isNotEmpty(current) || StringUtils.isNotEmpty(held) || StringUtils.isNotEmpty(fadeIn)
                    || StringUtils.isNotEmpty(fadeOut);
        }
        catch (XPathExpressionException e)
        {
            LOGGER.error(e, e);
            return false;
        }
    }

    public  TimeManagerStateController(TimeManager timeManager, AnimationManager animationManager);

}