| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- /* global APP */
 - import UIUtil from '../../util/UIUtil';
 - import UIEvents from '../../../../service/UI/UIEvents';
 - 
 - /**
 -  * List with supported commands. The keys are the names of the commands and
 -  * the value is the function that processes the message.
 -  * @type {{String: function}}
 -  */
 - const commands = {
 -     "topic" : processTopic
 - };
 - 
 - /**
 -  * Extracts the command from the message.
 -  * @param message the received message
 -  * @returns {string} the command
 -  */
 - function getCommand(message) {
 -     if(message) {
 -         for(var command in commands) {
 -             if(message.indexOf("/" + command) === 0)
 -                 return command;
 -         }
 -     }
 -     return "";
 - }
 - 
 - /**
 -  * Processes the data for topic command.
 -  * @param commandArguments the arguments of the topic command.
 -  */
 - function processTopic(commandArguments, emitter) {
 -     var topic = UIUtil.escapeHtml(commandArguments);
 -     emitter.emit(UIEvents.SUBJECT_CHANGED, topic);
 - }
 - 
 - /**
 -  * Constructs a new CommandProccessor instance from a message that
 -  * handles commands received via chat messages.
 -  * @param message the message
 -  * @constructor
 -  */
 - function CommandsProcessor(message, emitter) {
 -     var command = getCommand(message);
 - 
 -     this.emitter = emitter;
 - 
 -     /**
 -      * Returns the name of the command.
 -      * @returns {String} the command
 -      */
 -     this.getCommand = function() {
 -         return command;
 -     };
 - 
 - 
 -     var messageArgument = message.substr(command.length + 2);
 - 
 -     /**
 -      * Returns the arguments of the command.
 -      * @returns {string}
 -      */
 -     this.getArgument = function() {
 -         return messageArgument;
 -     };
 - }
 - 
 - /**
 -  * Checks whether this instance is valid command or not.
 -  * @returns {boolean}
 -  */
 - CommandsProcessor.prototype.isCommand = function() {
 -     if (this.getCommand())
 -         return true;
 -     return false;
 - };
 - 
 - /**
 -  * Processes the command.
 -  */
 - CommandsProcessor.prototype.processCommand = function() {
 -     if(!this.isCommand())
 -         return;
 - 
 -     commands[this.getCommand()](this.getArgument(), this.emitter);
 - };
 - 
 - export default CommandsProcessor;
 
 
  |