01. Enumerations in Java (11. Enumerations in Java)
External Links: https://disk.yandex.uz/d/tkRMTrXQEGI_MA Message type priority: Instructions: Implement console program which will meet the following requirements: Program starts and ask user to enter message type Only ‘A’, ‘B’, ‘C’ or ‘D’ message types are allowed. In case user entered invalid message type, program asks to enter message type again When valid message type is entered program prints message type priority to console Priority and Message Type implemented as enum types Message types have next priorities: Message Type Priority A HIGH B MEDIUM C LOW D LOW MessageType enum has next method: public Priority getPriority() { } Test(s) Test 1 import org.junit.Test; import org.junit.Assert; import com.udemy.ucp.*; import static org.junit.Assert.assertEquals; import org.junit.Test; public class Evaluate { @Test public void shouldReturnPriorityForA() { assertEquals(Priority.HIGH, MessageType.A.getPriority()); } @Test public void shouldReturnPriorityForB() { assertEquals(Priority.MEDIUM, MessageType.B.getPriority()); } @Test public void shouldReturnPriorityForC() { assertEquals(Priority.LOW, MessageType.C.getPriority()); } @Test public void shouldReturnPriorityForD() { assertEquals(Priority.LOW, MessageType.D.getPriority()); } } Solution(s) Solution 1 import java.util.Scanner; public class DemoEnum { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.println("Please, enter message type to check it priority: "); String userInput = sc.next(); if (isValidMessageType(userInput)) { MessageType messageType = MessageType.valueOf(userInput.toUpperCase()); System.out.println(messageType.getPriority()); break; } else { System.out.println("Please, enter valid " + "message type. Only 'A', 'B', 'C' or 'D' are allowed"); continue; } } } private static boolean isValidMessageType(String userInput) { return userInput.equalsIgnoreCase("a") || userInput.equalsIgnoreCase("b") || userInput.equalsIgnoreCase("c") || userInput.equalsIgnoreCase("d"); } } Solution 2 public enum MessageType { A(Priority.HIGH), B(Priority.MEDIUM), C(Priority.LOW), D(Priority.LOW); private Priority priority; private MessageType(Priority priority) { this.priority = priority; } public Priority getPriority() { return this.priority; } } Solution 3 public enum Priority { HIGH, MEDIUM, LOW; }