1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:38:11 +00:00

CodeGenerators: Replace uses of JsonObject::get_deprecated()/get_ptr()

This commit is contained in:
Sam Atkins 2022-12-21 14:37:27 +00:00 committed by Tim Flynn
parent 77e15ff4da
commit ad9b2043dd
9 changed files with 323 additions and 326 deletions

View file

@ -572,8 +572,8 @@ static ErrorOr<void> parse_hour_cycles(DeprecatedString core_path, CLDR& cldr)
time_data_path = time_data_path.append("timeData.json"sv);
auto time_data = TRY(read_json_file(time_data_path.string()));
auto const& supplemental_object = time_data.as_object().get_deprecated("supplemental"sv);
auto const& time_data_object = supplemental_object.as_object().get_deprecated("timeData"sv);
auto const& supplemental_object = time_data.as_object().get_object("supplemental"sv).value();
auto const& time_data_object = supplemental_object.get_object("timeData"sv).value();
auto parse_hour_cycle = [](StringView hour_cycle) -> Optional<Locale::HourCycle> {
if (hour_cycle == "h"sv)
@ -587,8 +587,8 @@ static ErrorOr<void> parse_hour_cycles(DeprecatedString core_path, CLDR& cldr)
return {};
};
time_data_object.as_object().for_each_member([&](auto const& key, JsonValue const& value) {
auto allowed_hour_cycles_string = value.as_object().get_deprecated("_allowed"sv).as_string();
time_data_object.for_each_member([&](auto const& key, JsonValue const& value) {
auto allowed_hour_cycles_string = value.as_object().get_deprecated_string("_allowed"sv).value();
auto allowed_hour_cycles = allowed_hour_cycles_string.split_view(' ');
Vector<Locale::HourCycle> hour_cycles;
@ -616,8 +616,8 @@ static ErrorOr<void> parse_week_data(DeprecatedString core_path, CLDR& cldr)
week_data_path = week_data_path.append("weekData.json"sv);
auto week_data = TRY(read_json_file(week_data_path.string()));
auto const& supplemental_object = week_data.as_object().get_deprecated("supplemental"sv);
auto const& week_data_object = supplemental_object.as_object().get_deprecated("weekData"sv);
auto const& supplemental_object = week_data.as_object().get_object("supplemental"sv).value();
auto const& week_data_object = supplemental_object.get_object("weekData"sv).value();
auto parse_weekday = [](StringView day) -> Locale::Weekday {
if (day == "sun"sv)
@ -647,12 +647,12 @@ static ErrorOr<void> parse_week_data(DeprecatedString core_path, CLDR& cldr)
weekday_regions.append(region);
};
auto const& minimum_days_object = week_data_object.as_object().get_deprecated("minDays"sv);
auto const& first_day_object = week_data_object.as_object().get_deprecated("firstDay"sv);
auto const& weekend_start_object = week_data_object.as_object().get_deprecated("weekendStart"sv);
auto const& weekend_end_object = week_data_object.as_object().get_deprecated("weekendEnd"sv);
auto const& minimum_days_object = week_data_object.get_object("minDays"sv).value();
auto const& first_day_object = week_data_object.get_object("firstDay"sv).value();
auto const& weekend_start_object = week_data_object.get_object("weekendStart"sv).value();
auto const& weekend_end_object = week_data_object.get_object("weekendEnd"sv).value();
minimum_days_object.as_object().for_each_member([&](auto const& region, auto const& value) {
minimum_days_object.for_each_member([&](auto const& region, auto const& value) {
auto minimum_days = value.as_string().template to_uint<u8>();
cldr.minimum_days.set(region, *minimum_days);
@ -660,13 +660,13 @@ static ErrorOr<void> parse_week_data(DeprecatedString core_path, CLDR& cldr)
cldr.minimum_days_regions.append(region);
});
first_day_object.as_object().for_each_member([&](auto const& region, auto const& value) {
first_day_object.for_each_member([&](auto const& region, auto const& value) {
parse_regional_weekdays(region, value.as_string(), cldr.first_day, cldr.first_day_regions);
});
weekend_start_object.as_object().for_each_member([&](auto const& region, auto const& value) {
weekend_start_object.for_each_member([&](auto const& region, auto const& value) {
parse_regional_weekdays(region, value.as_string(), cldr.weekend_start, cldr.weekend_start_regions);
});
weekend_end_object.as_object().for_each_member([&](auto const& region, auto const& value) {
weekend_end_object.for_each_member([&](auto const& region, auto const& value) {
parse_regional_weekdays(region, value.as_string(), cldr.weekend_end, cldr.weekend_end_regions);
});
@ -681,17 +681,17 @@ static ErrorOr<void> parse_meta_zones(DeprecatedString core_path, CLDR& cldr)
meta_zone_path = meta_zone_path.append("metaZones.json"sv);
auto meta_zone = TRY(read_json_file(meta_zone_path.string()));
auto const& supplemental_object = meta_zone.as_object().get_deprecated("supplemental"sv);
auto const& meta_zone_object = supplemental_object.as_object().get_deprecated("metaZones"sv);
auto const& meta_zone_array = meta_zone_object.as_object().get_deprecated("metazones"sv);
auto const& supplemental_object = meta_zone.as_object().get_object("supplemental"sv).value();
auto const& meta_zone_object = supplemental_object.get_object("metaZones"sv).value();
auto const& meta_zone_array = meta_zone_object.get_array("metazones"sv).value();
meta_zone_array.as_array().for_each([&](JsonValue const& value) {
auto const& mapping = value.as_object().get_deprecated("mapZone"sv);
auto const& meta_zone = mapping.as_object().get_deprecated("_other"sv);
auto const& golden_zone = mapping.as_object().get_deprecated("_type"sv);
meta_zone_array.for_each([&](JsonValue const& value) {
auto const& mapping = value.as_object().get_object("mapZone"sv).value();
auto const& meta_zone = mapping.get_deprecated_string("_other"sv).value();
auto const& golden_zone = mapping.get_deprecated_string("_type"sv).value();
if (auto time_zone = TimeZone::time_zone_from_string(golden_zone.as_string()); time_zone.has_value()) {
auto& golden_zones = cldr.meta_zones.ensure(meta_zone.as_string());
if (auto time_zone = TimeZone::time_zone_from_string(golden_zone); time_zone.has_value()) {
auto& golden_zones = cldr.meta_zones.ensure(meta_zone);
golden_zones.append(*time_zone);
}
});
@ -1263,9 +1263,9 @@ static void parse_calendar_symbols(Calendar& calendar, JsonObject const& calenda
};
auto parse_era_symbols = [&](auto const& symbols_object) {
auto const& narrow_symbols = symbols_object.get_deprecated("eraNarrow"sv).as_object();
auto const& short_symbols = symbols_object.get_deprecated("eraAbbr"sv).as_object();
auto const& long_symbols = symbols_object.get_deprecated("eraNames"sv).as_object();
auto const& narrow_symbols = symbols_object.get_object("eraNarrow"sv).value();
auto const& short_symbols = symbols_object.get_object("eraAbbr"sv).value();
auto const& long_symbols = symbols_object.get_object("eraNames"sv).value();
auto symbol_lists = create_symbol_lists(2);
auto append_symbol = [&](auto& symbols, auto const& key, auto symbol) {
@ -1287,9 +1287,9 @@ static void parse_calendar_symbols(Calendar& calendar, JsonObject const& calenda
};
auto parse_month_symbols = [&](auto const& symbols_object) {
auto const& narrow_symbols = symbols_object.get_deprecated("narrow"sv).as_object();
auto const& short_symbols = symbols_object.get_deprecated("abbreviated"sv).as_object();
auto const& long_symbols = symbols_object.get_deprecated("wide"sv).as_object();
auto const& narrow_symbols = symbols_object.get_object("narrow"sv).value();
auto const& short_symbols = symbols_object.get_object("abbreviated"sv).value();
auto const& long_symbols = symbols_object.get_object("wide"sv).value();
auto symbol_lists = create_symbol_lists(12);
auto append_symbol = [&](auto& symbols, auto const& key, auto symbol) {
@ -1311,9 +1311,9 @@ static void parse_calendar_symbols(Calendar& calendar, JsonObject const& calenda
};
auto parse_weekday_symbols = [&](auto const& symbols_object) {
auto const& narrow_symbols = symbols_object.get_deprecated("narrow"sv).as_object();
auto const& short_symbols = symbols_object.get_deprecated("abbreviated"sv).as_object();
auto const& long_symbols = symbols_object.get_deprecated("wide"sv).as_object();
auto const& narrow_symbols = symbols_object.get_object("narrow"sv).value();
auto const& short_symbols = symbols_object.get_object("abbreviated"sv).value();
auto const& long_symbols = symbols_object.get_object("wide"sv).value();
auto symbol_lists = create_symbol_lists(7);
auto append_symbol = [&](auto& symbols, auto const& key, auto symbol) {
@ -1347,9 +1347,9 @@ static void parse_calendar_symbols(Calendar& calendar, JsonObject const& calenda
};
auto parse_day_period_symbols = [&](auto const& symbols_object) {
auto const& narrow_symbols = symbols_object.get_deprecated("narrow"sv).as_object();
auto const& short_symbols = symbols_object.get_deprecated("abbreviated"sv).as_object();
auto const& long_symbols = symbols_object.get_deprecated("wide"sv).as_object();
auto const& narrow_symbols = symbols_object.get_object("narrow"sv).value();
auto const& short_symbols = symbols_object.get_object("abbreviated"sv).value();
auto const& long_symbols = symbols_object.get_object("wide"sv).value();
auto symbol_lists = create_symbol_lists(11);
auto append_symbol = [&](auto& symbols, auto const& key, auto symbol) {
@ -1370,10 +1370,10 @@ static void parse_calendar_symbols(Calendar& calendar, JsonObject const& calenda
store_symbol_lists(Locale::CalendarSymbol::DayPeriod, move(symbol_lists));
};
parse_era_symbols(calendar_object.get_deprecated("eras"sv).as_object());
parse_month_symbols(calendar_object.get_deprecated("months"sv).as_object().get_deprecated("format"sv).as_object());
parse_weekday_symbols(calendar_object.get_deprecated("days"sv).as_object().get_deprecated("format"sv).as_object());
parse_day_period_symbols(calendar_object.get_deprecated("dayPeriods"sv).as_object().get_deprecated("format"sv).as_object());
parse_era_symbols(calendar_object.get_object("eras"sv).value());
parse_month_symbols(calendar_object.get_object("months"sv)->get_object("format"sv).value());
parse_weekday_symbols(calendar_object.get_object("days"sv)->get_object("format"sv).value());
parse_day_period_symbols(calendar_object.get_object("dayPeriods"sv)->get_object("format"sv).value());
calendar.symbols = cldr.unique_calendar_symbols_lists.ensure(move(symbols_list));
}
@ -1385,17 +1385,17 @@ static ErrorOr<void> parse_calendars(DeprecatedString locale_calendars_path, CLD
return {};
auto calendars = TRY(read_json_file(calendars_path.string()));
auto const& main_object = calendars.as_object().get_deprecated("main"sv);
auto const& locale_object = main_object.as_object().get_deprecated(calendars_path.parent().basename());
auto const& dates_object = locale_object.as_object().get_deprecated("dates"sv);
auto const& calendars_object = dates_object.as_object().get_deprecated("calendars"sv);
auto const& main_object = calendars.as_object().get_object("main"sv).value();
auto const& locale_object = main_object.get_object(calendars_path.parent().basename()).value();
auto const& dates_object = locale_object.get_object("dates"sv).value();
auto const& calendars_object = dates_object.get_object("calendars"sv).value();
auto parse_patterns = [&](auto const& patterns_object, auto const& skeletons_object, Vector<CalendarPattern>* patterns) {
auto parse_pattern = [&](auto name) {
auto format = patterns_object.get_deprecated(name);
auto skeleton = skeletons_object.get_deprecated(name);
auto format = patterns_object.get_deprecated_string(name);
auto skeleton = skeletons_object.get_deprecated_string(name);
auto format_index = parse_date_time_pattern(format.as_string(), skeleton.as_string_or(DeprecatedString::empty()), cldr).value();
auto format_index = parse_date_time_pattern(format.value(), skeleton.value_or(DeprecatedString::empty()), cldr).value();
if (patterns)
patterns->append(cldr.unique_patterns.get(format_index));
@ -1412,7 +1412,7 @@ static ErrorOr<void> parse_calendars(DeprecatedString locale_calendars_path, CLD
return cldr.unique_formats.ensure(move(formats));
};
calendars_object.as_object().for_each_member([&](auto const& calendar_name, JsonValue const& value) {
calendars_object.for_each_member([&](auto const& calendar_name, JsonValue const& value) {
// The generic calendar is not a supported Unicode calendar key, so skip it:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar#unicode_calendar_keys
if (calendar_name == "generic"sv)
@ -1427,20 +1427,20 @@ static ErrorOr<void> parse_calendars(DeprecatedString locale_calendars_path, CLD
Vector<CalendarPattern> date_formats;
Vector<CalendarPattern> time_formats;
auto const& date_formats_object = value.as_object().get_deprecated("dateFormats"sv);
auto const& date_skeletons_object = value.as_object().get_deprecated("dateSkeletons"sv);
calendar.date_formats = parse_patterns(date_formats_object.as_object(), date_skeletons_object.as_object(), &date_formats);
auto const& date_formats_object = value.as_object().get_object("dateFormats"sv).value();
auto const& date_skeletons_object = value.as_object().get_object("dateSkeletons"sv).value();
calendar.date_formats = parse_patterns(date_formats_object, date_skeletons_object, &date_formats);
auto const& time_formats_object = value.as_object().get_deprecated("timeFormats"sv);
auto const& time_skeletons_object = value.as_object().get_deprecated("timeSkeletons"sv);
calendar.time_formats = parse_patterns(time_formats_object.as_object(), time_skeletons_object.as_object(), &time_formats);
auto const& time_formats_object = value.as_object().get_object("timeFormats"sv).value();
auto const& time_skeletons_object = value.as_object().get_object("timeSkeletons"sv).value();
calendar.time_formats = parse_patterns(time_formats_object, time_skeletons_object, &time_formats);
auto const& standard_date_time_formats_object = value.as_object().get_deprecated("dateTimeFormats-atTime"sv).as_object().get_deprecated("standard"sv);
calendar.date_time_formats = parse_patterns(standard_date_time_formats_object.as_object(), JsonObject {}, nullptr);
auto const& standard_date_time_formats_object = value.as_object().get_object("dateTimeFormats-atTime"sv)->get_object("standard"sv).value();
calendar.date_time_formats = parse_patterns(standard_date_time_formats_object, JsonObject {}, nullptr);
auto const& date_time_formats_object = value.as_object().get_deprecated("dateTimeFormats"sv);
auto const& available_formats_object = date_time_formats_object.as_object().get_deprecated("availableFormats"sv);
available_formats_object.as_object().for_each_member([&](auto const& skeleton, JsonValue const& pattern) {
auto const& date_time_formats_object = value.as_object().get_object("dateTimeFormats"sv).value();
auto const& available_formats_object = date_time_formats_object.get_object("availableFormats"sv).value();
available_formats_object.for_each_member([&](auto const& skeleton, JsonValue const& pattern) {
auto pattern_index = parse_date_time_pattern(pattern.as_string(), skeleton, cldr);
if (!pattern_index.has_value())
return;
@ -1455,8 +1455,8 @@ static ErrorOr<void> parse_calendars(DeprecatedString locale_calendars_path, CLD
available_formats.append(*pattern_index);
});
auto const& interval_formats_object = date_time_formats_object.as_object().get_deprecated("intervalFormats"sv);
parse_interval_patterns(calendar, interval_formats_object.as_object(), cldr);
auto const& interval_formats_object = date_time_formats_object.get_object("intervalFormats"sv).value();
parse_interval_patterns(calendar, interval_formats_object, cldr);
generate_default_patterns(available_formats, cldr);
generate_missing_patterns(calendar, available_formats, move(date_formats), move(time_formats), cldr);
@ -1475,26 +1475,26 @@ static ErrorOr<void> parse_time_zone_names(DeprecatedString locale_time_zone_nam
time_zone_names_path = time_zone_names_path.append("timeZoneNames.json"sv);
auto time_zone_names = TRY(read_json_file(time_zone_names_path.string()));
auto const& main_object = time_zone_names.as_object().get_deprecated("main"sv);
auto const& locale_object = main_object.as_object().get_deprecated(time_zone_names_path.parent().basename());
auto const& dates_object = locale_object.as_object().get_deprecated("dates"sv);
auto const& time_zone_names_object = dates_object.as_object().get_deprecated("timeZoneNames"sv);
auto const& meta_zone_object = time_zone_names_object.as_object().get_deprecated("metazone"sv);
auto const& hour_format_string = time_zone_names_object.as_object().get_deprecated("hourFormat"sv);
auto const& gmt_format_string = time_zone_names_object.as_object().get_deprecated("gmtFormat"sv);
auto const& gmt_zero_format_string = time_zone_names_object.as_object().get_deprecated("gmtZeroFormat"sv);
auto const& main_object = time_zone_names.as_object().get_object("main"sv).value();
auto const& locale_object = main_object.get_object(time_zone_names_path.parent().basename()).value();
auto const& dates_object = locale_object.get_object("dates"sv).value();
auto const& time_zone_names_object = dates_object.get_object("timeZoneNames"sv).value();
auto const& meta_zone_object = time_zone_names_object.get_object("metazone"sv);
auto const& hour_format_string = time_zone_names_object.get_deprecated_string("hourFormat"sv).value();
auto const& gmt_format_string = time_zone_names_object.get_deprecated_string("gmtFormat"sv).value();
auto const& gmt_zero_format_string = time_zone_names_object.get_deprecated_string("gmtZeroFormat"sv).value();
if (meta_zone_object.is_null())
if (!meta_zone_object.has_value())
return {};
auto parse_name = [&](StringView type, JsonObject const& meta_zone_object, StringView key) -> Optional<size_t> {
auto const& names = meta_zone_object.get_deprecated(type);
if (!names.is_object())
auto const& names = meta_zone_object.get_object(type);
if (!names.has_value())
return {};
auto const& name = names.as_object().get_deprecated(key);
if (name.is_string())
return cldr.unique_strings.ensure(name.as_string());
auto const& name = names->get_deprecated_string(key);
if (name.has_value())
return cldr.unique_strings.ensure(name.value());
return {};
};
@ -1525,9 +1525,9 @@ static ErrorOr<void> parse_time_zone_names(DeprecatedString locale_time_zone_nam
TimeZoneNamesList time_zones;
TimeZoneFormat time_zone_formats {};
parse_hour_format(hour_format_string.as_string(), time_zone_formats);
time_zone_formats.gmt_format = cldr.unique_strings.ensure(gmt_format_string.as_string());
time_zone_formats.gmt_zero_format = cldr.unique_strings.ensure(gmt_zero_format_string.as_string());
parse_hour_format(hour_format_string, time_zone_formats);
time_zone_formats.gmt_format = cldr.unique_strings.ensure(gmt_format_string);
time_zone_formats.gmt_zero_format = cldr.unique_strings.ensure(gmt_zero_format_string);
auto parse_time_zone = [&](StringView meta_zone, JsonObject const& meta_zone_object) {
auto golden_zones = cldr.meta_zones.find(meta_zone);
@ -1562,15 +1562,15 @@ static ErrorOr<void> parse_time_zone_names(DeprecatedString locale_time_zone_nam
}
};
meta_zone_object.as_object().for_each_member([&](auto const& meta_zone, JsonValue const& value) {
meta_zone_object->for_each_member([&](auto const& meta_zone, JsonValue const& value) {
parse_time_zone(meta_zone, value.as_object());
});
// The long and short names for UTC are not under the "timeZoneNames/metazone" object, but are under "timeZoneNames/zone/Etc".
auto const& zone_object = time_zone_names_object.as_object().get_deprecated("zone"sv);
auto const& etc_object = zone_object.as_object().get_deprecated("Etc"sv);
auto const& utc_object = etc_object.as_object().get_deprecated("UTC"sv);
parse_time_zone("UTC"sv, utc_object.as_object());
auto const& zone_object = time_zone_names_object.get_object("zone"sv).value();
auto const& etc_object = zone_object.get_object("Etc"sv).value();
auto const& utc_object = etc_object.get_object("UTC"sv).value();
parse_time_zone("UTC"sv, utc_object);
locale.time_zones = cldr.unique_time_zone_lists.ensure(move(time_zones));
locale.time_zone_formats = cldr.unique_time_zone_formats.ensure(move(time_zone_formats));
@ -1586,8 +1586,8 @@ static ErrorOr<void> parse_day_periods(DeprecatedString core_path, CLDR& cldr)
day_periods_path = day_periods_path.append("dayPeriods.json"sv);
auto locale_day_periods = TRY(read_json_file(day_periods_path.string()));
auto const& supplemental_object = locale_day_periods.as_object().get_deprecated("supplemental"sv);
auto const& day_periods_object = supplemental_object.as_object().get_deprecated("dayPeriodRuleSet"sv);
auto const& supplemental_object = locale_day_periods.as_object().get_object("supplemental"sv).value();
auto const& day_periods_object = supplemental_object.get_object("dayPeriodRuleSet"sv).value();
auto parse_hour = [](auto const& time) {
auto hour_end_index = time.find(':').value();
@ -1608,13 +1608,13 @@ static ErrorOr<void> parse_day_periods(DeprecatedString core_path, CLDR& cldr)
if (!day_period.has_value())
return {};
auto begin = parse_hour(ranges.get_deprecated("_from"sv).as_string());
auto end = parse_hour(ranges.get_deprecated("_before"sv).as_string());
auto begin = parse_hour(ranges.get_deprecated_string("_from"sv).value());
auto end = parse_hour(ranges.get_deprecated_string("_before"sv).value());
return DayPeriod { *day_period, begin, end };
};
day_periods_object.as_object().for_each_member([&](auto const& language, JsonValue const& value) {
day_periods_object.for_each_member([&](auto const& language, JsonValue const& value) {
auto locale = cldr.locales.find(language);
if (locale == cldr.locales.end())
return;