@JsonCreator
private static OspfArea create(
@JsonProperty(PROP_NAME) long number,
@JsonProperty(PROP_INJECT_DEFAULT_ROUTE) boolean injectDefaultRoute,
@JsonProperty(PROP_INTERFACES) @Nullable SortedSet<String> interfaces,
@JsonProperty(PROP_METRIC_OF_DEFAULT_ROUTE) int metricOfDefaultRoute,
@JsonProperty(PROP_NSSA) @Nullable NssaSettings nssa,
@JsonProperty(PROP_STUB) @Nullable StubSettings stub,
@JsonProperty(PROP_STUB_TYPE) @Nullable StubType stubType,
@JsonProperty(PROP_SUMMARIES) @Nullable SortedMap<Prefix, OspfAreaSummary> summaries,
@JsonProperty(PROP_SUMMARY_FILTER) @Nullable String summaryFilter) {
return new OspfArea(
number,
injectDefaultRoute,
firstNonNull(interfaces, ImmutableSortedSet.of()),
metricOfDefaultRoute,
nssa,
stub,
firstNonNull(stubType, StubType.NONE),
firstNonNull(summaries, ImmutableSortedMap.of()),
summaryFilter);
}