Browse Source

OnEvent annotation handler. All args is optional.

master
Nikita 12 years ago
parent
commit
c0d27c64c1
  1. 3
      README.md
  2. 7
      src/main/java/com/corundumstudio/socketio/annotation/OnEventScanner.java

3
README.md

@ -88,8 +88,7 @@ Declarative handlers binding. Handlers could be bound via annotations on any obj
// some stuff code
...
// only data object is required in arguments,
// SocketIOClient and AckRequest could be ommited
// SocketIOClient, AckRequest and Data could be ommited
@OnEvent('someevent')
public void onSomeEventHandler(SocketIOClient client, SomeClass data, AckRequest ackRequest) {
...

7
src/main/java/com/corundumstudio/socketio/annotation/OnEventScanner.java

@ -42,7 +42,10 @@ public class OnEventScanner implements AnnotationScanner {
final int socketIOClientIndex = paramIndex(method, SocketIOClient.class);
final int ackRequestIndex = paramIndex(method, AckRequest.class);
final int dataIndex = dataIndex(method);
Class objectType = method.getParameterTypes()[dataIndex];
Class objectType = Void.class;
if (dataIndex != -1) {
objectType = method.getParameterTypes()[dataIndex];
}
namespace.addEventListener(annotation.value(), objectType, new DataListener<Object>() {
@Override
public void onData(SocketIOClient client, Object data, AckRequest ackSender) {
@ -95,7 +98,7 @@ public class OnEventScanner implements AnnotationScanner {
final int ackRequestIndex = paramIndex(method, AckRequest.class);
final int dataIndex = dataIndex(method);
if (dataIndex == -1) {
throw new IllegalArgumentException("Wrong OnEvent listener signature: " + clazz + "." + method.getName() + " Data parameter is mandatory.");
paramsCount--;
}
if (socketIOClientIndex == -1) {
paramsCount--;

Loading…
Cancel
Save