io.muserver.openapi.DiscriminatorObjectBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mu-server Show documentation
Show all versions of mu-server Show documentation
A simple but powerful web server framework
package io.muserver.openapi;
import java.util.Map;
/**
* When request bodies or response payloads may be one of a number of different schemas, a discriminator
* object can be used to aid in serialization, deserialization, and validation. The discriminator is a specific object
* in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.
* When using the discriminator, inline schemas will not be considered.
*/
public class DiscriminatorObjectBuilder {
private String propertyName;
private Map mapping;
/**
* @param propertyName REQUIRED. The name of the property in the payload that will hold the discriminator value.
* @return The current builder
*/
public DiscriminatorObjectBuilder withPropertyName(String propertyName) {
this.propertyName = propertyName;
return this;
}
/**
* @param mapping An object to hold mappings between payload values and schema names or references.
* @return The current builder
*/
public DiscriminatorObjectBuilder withMapping(Map mapping) {
this.mapping = mapping;
return this;
}
public DiscriminatorObject build() {
return new DiscriminatorObject(propertyName, mapping);
}
/**
* Creates a builder for a {@link DiscriminatorObject}
*
* @return A new builder
*/
public static DiscriminatorObjectBuilder discriminatorObject() {
return new DiscriminatorObjectBuilder();
}
}