001/* 002 GRANITE DATA SERVICES 003 Copyright (C) 2011 GRANITE DATA SERVICES S.A.S. 004 005 This file is part of Granite Data Services. 006 007 Granite Data Services is free software; you can redistribute it and/or modify 008 it under the terms of the GNU Library General Public License as published by 009 the Free Software Foundation; either version 2 of the License, or (at your 010 option) any later version. 011 012 Granite Data Services is distributed in the hope that it will be useful, but 013 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License 015 for more details. 016 017 You should have received a copy of the GNU Library General Public License 018 along with this library; if not, see <http://www.gnu.org/licenses/>. 019*/ 020 021package org.granite.gravity.tomcat; 022 023import org.apache.catalina.CometEvent; 024import org.apache.catalina.CometEvent.EventSubType; 025import org.apache.catalina.CometEvent.EventType; 026 027/** 028 * @author Franck WOLFF 029 */ 030public class EventUtil { 031 032 public static boolean isTimeout(CometEvent event) { 033 return ( 034 event.getEventType() == EventType.ERROR && 035 event.getEventSubType() == EventSubType.TIMEOUT 036 ); 037 } 038 039 public static boolean isError(CometEvent event) { 040 return (event.getEventType() == EventType.ERROR); 041 } 042 043 public static boolean isErrorButNotTimeout(CometEvent event) { 044 return ( 045 event.getEventType() == EventType.ERROR && 046 event.getEventSubType() != EventSubType.TIMEOUT 047 ); 048 } 049 050 public static boolean isValid(CometEvent event) { 051 if (event != null) { 052 try { 053 return event.getHttpServletRequest() != null && event.getHttpServletResponse() != null; 054 } catch (Exception e) { 055 } 056 } 057 return false; 058 } 059 060 public static String toString(CometEvent event) { 061 if (event == null) 062 return "null"; 063 try { 064 return event.getClass().getName() + " [" + event.getEventType() + '.' + event.getEventSubType() + ']'; 065 } 066 catch (Exception e) { 067 return e.toString(); 068 } 069 } 070}