Merge pull request #13131 from dustdfg/tabs_json_helper_refactor

TabsJsonHelper refactor
This commit is contained in:
Aayush Gupta 2026-02-08 22:06:25 +08:00 committed by GitHub
commit 020dbdc82a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,8 +9,9 @@ import com.grack.nanojson.JsonParserException;
import com.grack.nanojson.JsonStringWriter; import com.grack.nanojson.JsonStringWriter;
import com.grack.nanojson.JsonWriter; import com.grack.nanojson.JsonWriter;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* Class to get a JSON representation of a list of tabs, and the other way around. * Class to get a JSON representation of a list of tabs, and the other way around.
@ -44,39 +45,25 @@ public final class TabsJsonHelper {
return getDefaultTabs(); return getDefaultTabs();
} }
final List<Tab> returnTabs = new ArrayList<>();
final JsonObject outerJsonObject;
try { try {
outerJsonObject = JsonParser.object().from(tabsJson); final JsonObject outerJsonObject = JsonParser.object().from(tabsJson);
if (!outerJsonObject.has(JSON_TABS_ARRAY_KEY)) { if (!outerJsonObject.has(JSON_TABS_ARRAY_KEY)) {
throw new InvalidJsonException("JSON doesn't contain \"" + JSON_TABS_ARRAY_KEY throw new InvalidJsonException("JSON doesn't contain \"" + JSON_TABS_ARRAY_KEY
+ "\" array"); + "\" array");
} }
final JsonArray tabsArray = outerJsonObject.getArray(JSON_TABS_ARRAY_KEY); final JsonArray tabsArray = outerJsonObject.getArray(JSON_TABS_ARRAY_KEY, null);
for (final Object o : tabsArray) { final var returnTabs = tabsArray.streamAsJsonObjects()
if (!(o instanceof JsonObject)) { .map(Tab::from)
continue; .filter(Objects::nonNull)
} .collect(Collectors.toUnmodifiableList());
final Tab tab = Tab.from((JsonObject) o); return returnTabs.isEmpty() ? getDefaultTabs() : returnTabs;
if (tab != null) {
returnTabs.add(tab);
}
}
} catch (final JsonParserException e) { } catch (final JsonParserException e) {
throw new InvalidJsonException(e); throw new InvalidJsonException(e);
} }
if (returnTabs.isEmpty()) {
return getDefaultTabs();
}
return returnTabs;
} }
/** /**