AbstractTempoExpression.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {PlacementEnum} from "./AbstractExpression";
  2. import {MultiTempoExpression} from "./MultiTempoExpression";
  3. export abstract class AbstractTempoExpression {
  4. constructor(label: string, placement: PlacementEnum, staffNumber: number, parentMultiTempoExpression: MultiTempoExpression) {
  5. this.label = label;
  6. this.placement = placement;
  7. this.staffNumber = staffNumber;
  8. this.parentMultiTempoExpression = parentMultiTempoExpression;
  9. }
  10. protected label: string;
  11. protected placement: PlacementEnum;
  12. protected staffNumber: number;
  13. protected parentMultiTempoExpression: MultiTempoExpression;
  14. public get Label(): string {
  15. return this.label;
  16. }
  17. public set Label(value: string) {
  18. this.label = value;
  19. }
  20. public get Placement(): PlacementEnum {
  21. return this.placement;
  22. }
  23. public set Placement(value: PlacementEnum) {
  24. this.placement = value;
  25. }
  26. public get StaffNumber(): number {
  27. return this.staffNumber;
  28. }
  29. public set StaffNumber(value: number) {
  30. this.staffNumber = value;
  31. }
  32. public get ParentMultiTempoExpression(): MultiTempoExpression {
  33. return this.parentMultiTempoExpression;
  34. }
  35. protected static isStringInStringList(wordsToFind: string[], inputString: string): boolean {
  36. for (let wordToFind of wordsToFind) {
  37. if (AbstractTempoExpression.stringContainsSeparatedWord(inputString.toLowerCase().trim(), wordToFind.toLowerCase().trim())) {
  38. return true;
  39. }
  40. }
  41. return false;
  42. }
  43. private static stringContainsSeparatedWord(str: string, word: string): boolean {
  44. return (str === word || str.indexOf(" " + word) !== -1 || str.indexOf(word + " ") !== -1);
  45. }
  46. }