2014-11-20 20:46:51 +01:00
|
|
|
/**
|
|
|
|
* Created by knut on 14-11-19.
|
|
|
|
*/
|
2015-04-20 21:21:17 +02:00
|
|
|
var actors = {};
|
2014-11-24 22:03:32 +01:00
|
|
|
var actorKeys = [];
|
2015-04-20 21:21:17 +02:00
|
|
|
var messages = [];
|
|
|
|
var notes = [];
|
2015-11-15 15:06:24 +01:00
|
|
|
var Logger = require('../../logger');
|
2015-10-19 21:36:55 +02:00
|
|
|
var log = new Logger.Log();
|
|
|
|
|
2015-06-30 14:23:32 +02:00
|
|
|
|
2015-04-20 21:21:17 +02:00
|
|
|
|
2014-11-20 20:46:51 +01:00
|
|
|
exports.addActor = function(id,name,description){
|
|
|
|
actors[id] = {name:name, description:description};
|
2014-11-24 22:03:32 +01:00
|
|
|
actorKeys.push(id);
|
2014-11-20 20:46:51 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.addMessage = function(idFrom, idTo, message, answer){
|
|
|
|
messages.push({from:idFrom, to:idTo, message:message, answer:answer});
|
|
|
|
};
|
|
|
|
|
2015-04-20 21:21:17 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
2014-12-04 17:58:05 +01:00
|
|
|
exports.addSignal = function(idFrom, idTo, message, messageType){
|
2015-06-30 14:23:32 +02:00
|
|
|
log.debug('Adding message from='+idFrom+' to='+idTo+' message='+message+' type='+messageType);
|
2014-12-04 17:58:05 +01:00
|
|
|
messages.push({from:idFrom, to:idTo, message:message, type:messageType});
|
|
|
|
};
|
|
|
|
|
2014-11-20 20:46:51 +01:00
|
|
|
exports.getMessages = function(){
|
|
|
|
return messages;
|
|
|
|
};
|
|
|
|
|
|
|
|
exports.getActors = function(){
|
|
|
|
return actors;
|
|
|
|
};
|
2014-12-04 17:58:05 +01:00
|
|
|
exports.getActor = function(id){
|
|
|
|
return actors[id];
|
|
|
|
};
|
2014-11-24 22:03:32 +01:00
|
|
|
exports.getActorKeys = function(){
|
2014-12-04 17:58:05 +01:00
|
|
|
return Object.keys(actors);
|
2014-11-24 22:03:32 +01:00
|
|
|
};
|
|
|
|
|
2014-11-20 20:46:51 +01:00
|
|
|
exports.clear = function(){
|
2015-04-20 21:21:17 +02:00
|
|
|
actors = {};
|
2014-11-20 20:46:51 +01:00
|
|
|
messages = [];
|
2014-12-04 17:58:05 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.LINETYPE = {
|
2015-04-20 21:21:17 +02:00
|
|
|
SOLID : 0 ,
|
|
|
|
DOTTED : 1 ,
|
|
|
|
NOTE : 2 ,
|
|
|
|
SOLID_CROSS : 3 ,
|
|
|
|
DOTTED_CROSS : 4 ,
|
|
|
|
SOLID_OPEN : 5 ,
|
|
|
|
DOTTED_OPEN : 6 ,
|
|
|
|
LOOP_START : 10 ,
|
|
|
|
LOOP_END : 11 ,
|
|
|
|
ALT_START : 12 ,
|
|
|
|
ALT_ELSE : 13 ,
|
|
|
|
ALT_END : 14 ,
|
|
|
|
OPT_START : 15 ,
|
|
|
|
OPT_END : 16
|
2014-12-04 17:58:05 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.ARROWTYPE = {
|
2015-04-20 21:21:17 +02:00
|
|
|
FILLED : 0,
|
|
|
|
OPEN : 1
|
2014-12-04 17:58:05 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.PLACEMENT = {
|
2015-04-20 21:21:17 +02:00
|
|
|
LEFTOF : 0,
|
|
|
|
RIGHTOF : 1,
|
|
|
|
OVER : 2
|
2014-12-04 17:58:05 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.addNote = function (actor, placement, message){
|
|
|
|
var note = {actor:actor, placement: placement, message:message};
|
|
|
|
|
2015-11-06 02:42:03 -05:00
|
|
|
// Coerce actor into a [to, from, ...] array
|
|
|
|
var actors = [].concat(actor, actor);
|
|
|
|
|
2014-12-04 17:58:05 +01:00
|
|
|
notes.push(note);
|
2015-11-06 02:42:03 -05:00
|
|
|
messages.push({from:actors[0], to:actors[1], message:message, type:exports.LINETYPE.NOTE, placement: placement});
|
2014-12-04 17:58:05 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2015-01-24 19:33:10 +01:00
|
|
|
exports.parseError = function(err,hash){
|
2015-10-17 12:46:36 +02:00
|
|
|
global.mermaidAPI.parseError(err,hash);
|
2015-01-04 17:56:58 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
exports.apply = function(param){
|
|
|
|
if(param instanceof Array ){
|
|
|
|
param.forEach(function(item){
|
|
|
|
exports.apply(item);
|
|
|
|
});
|
|
|
|
} else {
|
2015-06-30 14:23:32 +02:00
|
|
|
// log.debug(param);
|
2015-01-04 17:56:58 +01:00
|
|
|
switch(param.type){
|
|
|
|
case 'addActor':
|
|
|
|
exports.addActor(param.actor, param.actor, param.actor);
|
|
|
|
break;
|
|
|
|
case 'addNote':
|
|
|
|
exports.addNote(param.actor,param.placement, param.text);
|
|
|
|
break;
|
|
|
|
case 'addMessage':
|
|
|
|
exports.addSignal(param.from, param.to, param.msg, param.signalType);
|
|
|
|
break;
|
|
|
|
case 'loopStart':
|
2015-06-30 14:23:32 +02:00
|
|
|
//log.debug('Loop text: ',param.loopText);
|
2015-01-04 17:56:58 +01:00
|
|
|
exports.addSignal(undefined, undefined, param.loopText, param.signalType);
|
|
|
|
//yy.addSignal(undefined, undefined, $2, yy.LINETYPE.LOOP_START);
|
|
|
|
break;
|
|
|
|
case 'loopEnd':
|
|
|
|
exports.addSignal(undefined, undefined, undefined, param.signalType);
|
|
|
|
break;
|
2015-01-05 13:25:37 +01:00
|
|
|
case 'optStart':
|
2015-06-30 14:23:32 +02:00
|
|
|
//log.debug('Loop text: ',param.loopText);
|
2015-01-05 13:25:37 +01:00
|
|
|
exports.addSignal(undefined, undefined, param.optText, param.signalType);
|
|
|
|
//yy.addSignal(undefined, undefined, $2, yy.LINETYPE.LOOP_START);
|
|
|
|
break;
|
|
|
|
case 'optEnd':
|
|
|
|
exports.addSignal(undefined, undefined, undefined, param.signalType);
|
|
|
|
break;
|
|
|
|
case 'altStart':
|
2015-06-30 14:23:32 +02:00
|
|
|
//log.debug('Loop text: ',param.loopText);
|
2015-01-05 13:25:37 +01:00
|
|
|
exports.addSignal(undefined, undefined, param.altText, param.signalType);
|
|
|
|
//yy.addSignal(undefined, undefined, $2, yy.LINETYPE.LOOP_START);
|
|
|
|
break;
|
|
|
|
case 'else':
|
|
|
|
exports.addSignal(undefined, undefined, param.altText, param.signalType);
|
|
|
|
break;
|
|
|
|
case 'altEnd':
|
|
|
|
exports.addSignal(undefined, undefined, undefined, param.signalType);
|
|
|
|
break;
|
2015-01-04 17:56:58 +01:00
|
|
|
}
|
|
|
|
}
|
2015-11-06 02:42:03 -05:00
|
|
|
};
|