/*******************************************************************************
* Copyright (C) 2014, International Business Machines Corporation
* All Rights Reserved
*******************************************************************************/
package com.ibm.streamsx.messaging.mqtt;
import java.util.HashMap;
/**
* Represent a client request
*
*/
public class MqttClientRequest {
private static final String MQTTSRC_TOPIC_REPLACE = "REPLACE"; //$NON-NLS-1$
private static final String MQTTSRC_TOPIC_UPDATE = "UPDATE"; //$NON-NLS-1$
private static final String MQTTSRC_TOPIC_REMOVE = "REMOVE"; //$NON-NLS-1$
private static final String MQTTSRC_TOPIC_ADD = "ADD"; //$NON-NLS-1$
public enum MqttClientRequestType {CONNECT, ADD_TOPICS, REMOVE_TOPICS, UPDATE_TOPICS, REPLACE_TOPICS};
// mapping between SPL topic description action to MQTT client request
private static HashMap<String, MqttClientRequestType> SPL_TO_REQTYPE_MAP = new HashMap<String, MqttClientRequest.MqttClientRequestType>();
static {
SPL_TO_REQTYPE_MAP.put(MqttClientRequest.MQTTSRC_TOPIC_ADD, MqttClientRequestType.ADD_TOPICS);
SPL_TO_REQTYPE_MAP.put(MqttClientRequest.MQTTSRC_TOPIC_REMOVE, MqttClientRequestType.REMOVE_TOPICS);
SPL_TO_REQTYPE_MAP.put(MqttClientRequest.MQTTSRC_TOPIC_UPDATE, MqttClientRequestType.UPDATE_TOPICS);
SPL_TO_REQTYPE_MAP.put(MqttClientRequest.MQTTSRC_TOPIC_REPLACE, MqttClientRequestType.REPLACE_TOPICS);
}
private MqttClientRequestType reqType;
private String serverUri;
private String[] topics;
private int qos;
public MqttClientRequestType getReqType() {
return reqType;
}
public MqttClientRequest setReqType(MqttClientRequestType reqType) {
this.reqType = reqType;
return this;
}
public String getServerUri() {
return serverUri;
}
public MqttClientRequest setServerUri(String serverUri) {
this.serverUri = serverUri;
return this;
}
public String[] getTopics() {
return topics;
}
public MqttClientRequest setTopics(String[] topics) {
this.topics = topics;
return this;
}
public int getQos() {
return qos;
}
public MqttClientRequest setQos(int qos) {
this.qos = qos;
return this;
}
public static MqttClientRequestType getRequestType(String splUpdateCode)
{
return SPL_TO_REQTYPE_MAP.get(splUpdateCode);
}
}