Quellcode durchsuchen

Add ConvertToNATOAlphabet

Marvin Wendt vor 5 Jahren
Ursprung
Commit
4122d4207d
1 geänderte Dateien mit 160 neuen und 0 gelöschten Zeilen
  1. 160 0
      src/core/operations/ConvertToNATOAlphabet.mjs

+ 160 - 0
src/core/operations/ConvertToNATOAlphabet.mjs

@@ -0,0 +1,160 @@
+/**
+ * @author MarvinJWendt [git@marvinjwendt.com]
+ * @copyright Crown Copyright 2019
+ * @license Apache-2.0
+ */
+
+import Operation from "../Operation.mjs";
+
+/**
+ * Convert to NATO alphabet operation
+ */
+class ConvertToNATOAlphabet extends Operation {
+    /**
+     * ConvertToNATOAlphabet constructor
+     */
+    constructor() {
+        super();
+
+        this.name = "Convert to NATO alphabet";
+        this.module = "Default";
+        this.description = "Convert a text to NATO alphabet.";
+        this.infoURL = "https://en.wikipedia.org/wiki/NATO_phonetic_alphabet";
+        this.inputType = "string";
+        this.outputType = "string";
+        this.args = [];
+    }
+
+    /**
+     * @param {string} input
+     * @param {Object[]} args
+     * @returns {string}
+     */
+    run(input, args) {
+        let result = "";
+
+        const text = input.toUpperCase();
+
+        for (let i = 0; i < text.length; i++) {
+            switch (text.charAt(i)) {
+                case "A":
+                    result +=  "alfa ";
+                    break;
+                case "B":
+                    result +=  "bravo ";
+                    break;
+                case "C":
+                    result +=  "charlie ";
+                    break;
+                case "D":
+                    result +=  "delta ";
+                    break;
+                case "E":
+                    result +=  "echo ";
+                    break;
+                case "F":
+                    result +=  "foxtrot ";
+                    break;
+                case "G":
+                    result +=  "golf ";
+                    break;
+                case "H":
+                    result +=  "hotel ";
+                    break;
+                case "I":
+                    result +=  "india ";
+                    break;
+                case "J":
+                    result +=  "juliett ";
+                    break;
+                case "K":
+                    result +=  "kilo ";
+                    break;
+                case "L":
+                    result +=  "lima ";
+                    break;
+                case "M":
+                    result +=  "mike ";
+                    break;
+                case "N":
+                    result +=  "november ";
+                    break;
+                case "O":
+                    result +=  "oscar ";
+                    break;
+                case "P":
+                    result +=  "papa ";
+                    break;
+                case "Q":
+                    result +=  "quebec ";
+                    break;
+                case "R":
+                    result +=  "romeo ";
+                    break;
+                case "S":
+                    result +=  "sierra ";
+                    break;
+                case "T":
+                    result +=  "tango ";
+                    break;
+                case "U":
+                    result +=  "uniform ";
+                    break;
+                case "V":
+                    result +=  "victor ";
+                    break;
+                case "W":
+                    result +=  "whiskey ";
+                    break;
+                case "X":
+                    result +=  "xray ";
+                    break;
+                case "Y":
+                    result +=  "yankee ";
+                    break;
+                case "Z":
+                    result +=  "zulu ";
+                    break;
+                case " ":
+                    result +=  " ";
+                    break;
+                case "0":
+                    result += "zero ";
+                    break;
+                case "1":
+                    result += "one ";
+                    break;
+                case "2":
+                    result += "two ";
+                    break;
+                case "3":
+                    result += "three ";
+                    break;
+                case "4":
+                    result += "four ";
+                    break;
+                case "5":
+                    result += "five ";
+                    break;
+                case "6":
+                    result += "six ";
+                    break;
+                case "7":
+                    result += "seven ";
+                    break;
+                case "8":
+                    result += "eight ";
+                    break;
+                case "9":
+                    result += "nine ";
+                    break;
+                default:
+                    result +=  text.charAt(i) + " ";
+            }
+        }
+
+        return result;
+    }
+}
+
+export default ConvertToNATOAlphabet;