001/*******************************************************************************
002 * Copyright (c) 2017 Red Hat Inc and others.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the Eclipse Public License v1.0
006 * which accompanies this distribution, and is available at
007 * http://www.eclipse.org/legal/epl-v10.html
008 *
009 * Contributors:
010 *     Red Hat Inc - initial API and implementation
011 *******************************************************************************/
012package org.eclipse.kapua.gateway.client.mqtt;
013
014import org.eclipse.kapua.gateway.client.Topic;
015
016/**
017 * A namespace implementation for MQTT
018 */
019public interface MqttNamespace {
020
021    /**
022     * Render an MQTT topic for the provided data topic
023     * 
024     * @param clientId
025     *            The MQTT client ID
026     * @param applicationId
027     *            The application ID
028     * @param topic
029     *            The data topid
030     * @return The topic or {@code null} if no topic could be rendered for the provided input parameters
031     */
032    public String dataTopic(String clientId, String applicationId, Topic topic);
033}