
io.github.stewseo.client.yelpfusion.business.match.BusinessMatchResponse Maven / Gradle / Ivy
package io.github.stewseo.client.yelpfusion.business.match;
import io.github.stewseo.client.json.JsonpDeserializable;
import io.github.stewseo.client.json.JsonpDeserializer;
import io.github.stewseo.client.json.JsonpMapper;
import io.github.stewseo.client.json.JsonpSerializable;
import io.github.stewseo.client.json.ObjectBuilderDeserializer;
import io.github.stewseo.client.json.ObjectDeserializer;
import io.github.stewseo.client.util.ObjectBuilder;
import io.github.stewseo.client.util.WithJsonObjectBuilderBase;
import jakarta.json.stream.JsonGenerator;
import java.util.List;
import java.util.function.Function;
@JsonpDeserializable
public class BusinessMatchResponse implements JsonpSerializable {
private final List businesses;
private BusinessMatchResponse(Builder builder) {
this.businesses = builder.businesses;
}
public List businesses() {
return businesses;
}
public static BusinessMatchResponse of(Function> fn) {
return fn.apply(new Builder()).build();
}
public void serialize(JsonGenerator generator, JsonpMapper mapper) {
generator.writeStartObject();
serializeInternal(generator, mapper);
generator.writeEnd();
}
protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
if (this.businesses != null) {
generator.writeKey("businesses");
generator.writeStartArray();
for(BusinessMatch item0 : businesses) {
item0.serialize(generator, mapper);
}
generator.writeEnd();
}
}
public static class Builder extends WithJsonObjectBuilderBase
implements
ObjectBuilder {
private List businesses;
public Builder businesses(List businesses) {
this.businesses = _listAddAll(this.businesses, businesses);;
return this;
}
public Builder businesses(BusinessMatch business, BusinessMatch ... businesses) {
this.businesses = _listAdd(this.businesses, business, businesses);
return this;
}
@Override
protected BusinessMatchResponse.Builder self() {
return this;
}
public BusinessMatchResponse build() {
_checkSingleUse();
return new BusinessMatchResponse(this);
}
}
// ------------------------------ Deserializer ------------------------------------ //
public static final JsonpDeserializer _DESERIALIZER =
ObjectBuilderDeserializer.lazy(BusinessMatchResponse.Builder::new, BusinessMatchResponse::setupAutoCompleteDeserializer);
protected static void setupAutoCompleteDeserializer(ObjectDeserializer op) {
op.add(BusinessMatchResponse.Builder::businesses, JsonpDeserializer.arrayDeserializer(BusinessMatch._DESERIALIZER), "businesses");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy