Merge pull request #13131 from dustdfg/tabs_json_helper_refactor
TabsJsonHelper refactor
This commit is contained in:
commit
020dbdc82a
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user