You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/02/20 19:08:25 UTC
svn commit: r1448332 -
/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
Author: markt
Date: Wed Feb 20 18:08:24 2013
New Revision: 1448332
URL: http://svn.apache.org/r1448332
Log:
First step in refactoring as it isn't just message handlers we need to determine the generic types for
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1448332&r1=1448331&r2=1448332&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Wed Feb 20 18:08:24 2013
@@ -407,11 +407,11 @@ public class WsSession implements Sessio
// Protected so unit tests can use it
protected static Class<?> getMessageType(MessageHandler listener) {
- return (Class<?>) getMessageType(listener.getClass());
+ return (Class<?>) getGenericType(listener.getClass());
}
- private static Object getMessageType(Class<? extends MessageHandler> clazz) {
+ private static Object getGenericType(Class<? extends MessageHandler> clazz) {
// Look to see if this class implements the generic MessageHandler<>
// interface
@@ -423,12 +423,12 @@ public class WsSession implements Sessio
if (iface instanceof ParameterizedType) {
ParameterizedType pi = (ParameterizedType) iface;
// Look for the MessageHandler<> interface
- if (pi.getRawType().equals(MessageHandler.Basic.class)
- || pi.getRawType().equals(MessageHandler.Async.class)) {
- // Whichever interface it is, there is only one generic
- // type.
- return getTypeParameter(
- clazz, pi.getActualTypeArguments()[0]);
+ if (pi.getRawType() instanceof Class) {
+ if (MessageHandler.class.isAssignableFrom(
+ (Class<?>) pi.getRawType())) {
+ return getTypeParameter(
+ clazz, pi.getActualTypeArguments()[0]);
+ }
}
}
}
@@ -437,7 +437,7 @@ public class WsSession implements Sessio
Class<? extends MessageHandler> superClazz =
(Class<? extends MessageHandler>) clazz.getSuperclass();
- Object result = getMessageType(superClazz);
+ Object result = getGenericType(superClazz);
if (result instanceof Class<?>) {
// Superclass implements interface and defines explicit type for
// MessageHandler<>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org