File: /home/padewitte/projets/webcomponents/myscript-js/src/output/music/musicPart.js
'use strict';
(function (scope) {
/**
* Music part
*
* @class MusicPart
* @param {Object} [obj]
* @constructor
*/
function MusicPart(obj) {
this.elements = [];
if (obj) {
for (var i in obj.elements) {
switch (obj.elements[i].elementType) {
case 'accidental':
this.elements.push(new scope.MusicAccidental(obj.elements[i]));
break;
case 'annotation':
this.elements.push(new scope.MusicAnnotation(obj.elements[i]));
break;
case 'arpeggiate':
this.elements.push(new scope.MusicArpeggiate(obj.elements[i]));
break;
case 'bar':
this.elements.push(new scope.MusicBar(obj.elements[i]));
break;
case 'beam':
this.elements.push(new scope.MusicBeam(obj.elements[i]));
break;
case 'chord':
this.elements.push(new scope.MusicChord(obj.elements[i]));
break;
case 'clef':
this.elements.push(new scope.MusicClef(obj.elements[i]));
break;
case 'decoration':
this.elements.push(new scope.MusicDecoration(obj.elements[i]));
break;
case 'dots':
this.elements.push(new scope.MusicDots(obj.elements[i]));
break;
case 'head':
this.elements.push(new scope.MusicHead(obj.elements[i]));
break;
case 'keySignature':
this.elements.push(new scope.MusicKeySignature(obj.elements[i]));
break;
case 'ledgerLine':
this.elements.push(new scope.MusicLedgerLine(obj.elements[i]));
break;
case 'note':
this.elements.push(new scope.MusicNote(obj.elements[i]));
break;
case 'rest':
this.elements.push(new scope.MusicRest(obj.elements[i]));
break;
case 'slur':
this.elements.push(new scope.MusicSlur(obj.elements[i]));
break;
case 'stem':
this.elements.push(new scope.MusicStem(obj.elements[i]));
break;
case 'tie':
this.elements.push(new scope.MusicTie(obj.elements[i]));
break;
case 'timeSignature':
this.elements.push(new scope.MusicTimeSignature(obj.elements[i]));
break;
case 'tuplet':
this.elements.push(new scope.MusicTuplet(obj.elements[i]));
break;
case 'tupletBracket':
this.elements.push(new scope.MusicTupletBracket(obj.elements[i]));
break;
default:
throw new Error('Unknown music element');
}
}
}
}
/**
* Get elements
*
* @method getElements
* @returns {MusicElement[]}
*/
MusicPart.prototype.getElements = function () {
return this.elements;
};
// Export
scope.MusicPart = MusicPart;
})(MyScript);