MapUtil { public static boolean parseBooleanFlag(final Map<String, Object> parameters, String flagName, boolean defaultValue) throws ContentException { Object flagValue = parameters.get(flagName); if (flagValue == null) { return defaultValue; } if (!(flagValue instanceof Boolean)) { throw new ContentException(Messages.COULD_NOT_PARSE_BOOLEAN_FLAG, flagName); } return ((Boolean) flagValue).booleanValue(); } private  MapUtil(); @SuppressWarnings("unchecked") static Map<K, V> cast(Map<?, ?> map); static void addNonNull(Map<K, V> env, K key, V value); static Map<K, V> mergeSafely(Map<K, V> original, Map<K, V> override); static Map<K, V> merge(Map<K, V> original, Map<K, V> override); static boolean parseBooleanFlag(final Map<String, Object> parameters, String flagName, boolean defaultValue);  }
@Test void testParseBooleanFlag() { assertTrue(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "trueFlag", true)); assertTrue(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "trueFlag", false)); assertTrue(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "notPresentFlag", true)); assertTrue(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "emptyFlag", true)); assertFalse(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "falseFlag", true)); assertFalse(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "notPresentFlag", false)); assertFalse(MapUtil.parseBooleanFlag(TEST_PARAMETERS, "emptyFlag", false)); assertThrows(ContentException.class, () -> MapUtil.parseBooleanFlag(TEST_PARAMETERS, "incorrectTypeFlag1", true)); assertThrows(ContentException.class, () -> MapUtil.parseBooleanFlag(TEST_PARAMETERS, "incorrectTypeFlag2", true)); }