
io.github.emm035.openapi.immutables.v3.schemas.AbstractStringSchema Maven / Gradle / Ivy
package io.github.emm035.openapi.immutables.v3.schemas;
import io.github.emm035.openapi.immutables.v3.shared.Enumerated;
import io.github.emm035.openapi.immutables.v3.shared.OpenApiStyle;
import org.immutables.value.Value.Immutable;
import java.util.Optional;
import static org.immutables.value.Value.Check;
import static org.immutables.value.Value.Default;
@OpenApiStyle
@Immutable
public abstract class AbstractStringSchema implements TypedSchema, Enumerated {
@Override
@Default
public Type getType() {
return Type.STRING;
}
public abstract Optional getFormat();
public abstract Optional getPattern();
public static final class Format {
public static final String DATE = "date";
public static final String DATE_TIME = "date-time";
public static final String PASSWORD = "password";
public static final String BYTE = "byte";
public static final String BINARY = "binary";
}
@Check
AbstractStringSchema normalizeExtensions() {
if (Checks.allValid(this)) {
return this;
}
return StringSchema.builder()
.from(this)
.setExtensions(Checks.validExtensions(this))
.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy