diff options
author | Kevin Smith <git@kismith.co.uk> | 2011-07-01 09:19:49 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2011-07-01 09:19:49 (GMT) |
commit | 2da71a8a85486a494343f1662d64fb5ae5a2a44e (patch) | |
tree | 23992f9f2a00bac23b345e5c2cc9c1194efc25be /src/com/isode/stroke/queries/GenericRequest.java | |
download | stroke-2da71a8a85486a494343f1662d64fb5ae5a2a44e.zip stroke-2da71a8a85486a494343f1662d64fb5ae5a2a44e.tar.bz2 |
Initial import
Diffstat (limited to 'src/com/isode/stroke/queries/GenericRequest.java')
-rw-r--r-- | src/com/isode/stroke/queries/GenericRequest.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/com/isode/stroke/queries/GenericRequest.java b/src/com/isode/stroke/queries/GenericRequest.java new file mode 100644 index 0000000..cfbfb52 --- /dev/null +++ b/src/com/isode/stroke/queries/GenericRequest.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2010, 2011 Isode Limited, London, England. + * All rights reserved. + */ +/* + * Copyright (c) 2010, Remko Tron¨on. + * All rights reserved. + */ + +package com.isode.stroke.queries; + +import com.isode.stroke.elements.ErrorPayload; +import com.isode.stroke.elements.IQ; +import com.isode.stroke.elements.Payload; +import com.isode.stroke.jid.JID; +import com.isode.stroke.signals.Signal2; + +/** + * IQ Request for standard payload. + */ +public class GenericRequest<T extends Payload> extends Request { + + public Signal2<T, ErrorPayload> onResponse = new Signal2<T, ErrorPayload>(); + + public GenericRequest(IQ.Type type, JID receiver, Payload payload, IQRouter router) { + super(type, receiver, payload, router); + } + + @Override + protected void handleResponse(Payload payload, ErrorPayload error) { + T genericPayload = null; + try { + genericPayload = (T)payload; + } catch (Exception ex) { + /* This isn't legal XMPP, so treat as NULL.*/ + } + onResponse.emit(genericPayload, error); + } + + protected T getPayloadGeneric() { + return (T)getPayload(); + } + +} |