All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vulpine.lib.json.schema.v4.IntegerSchema Maven / Gradle / Ivy

package io.vulpine.lib.json.schema.v4;

import java.math.BigDecimal;
import java.math.BigInteger;

import com.fasterxml.jackson.databind.JsonNode;
import io.vulpine.lib.json.schema.SchemaBuilder;
import io.vulpine.lib.json.schema.v4.trait.*;

/**
 * @since 2.0
 */
public interface IntegerSchema
extends
  SchemaNode,
  HasRemoveEnum,
  HasOrArray,
  HasOrBoolean,
  HasOrNull,
  HasOrNumber,
  HasOrObject,
  HasOrString
{
  /**
   * Sets the {@code "default"} property to the given value
   *
   * @param val
   *   schema {@code "default"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema defaultValue(int val);

  /**
   * Sets the {@code "default"} property to the given value
   *
   * @param val
   *   schema {@code "default"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema defaultValue(long val);

  /**
   * Sets the {@code "default"} property to the given value
   *
   * @param val
   *   schema {@code "default"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema defaultValue(BigInteger val);

  /**
   * Sets the {@code "maximum"} property to the given value
   *
   * @param val
   *   schema maximum value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema maximum(int val);

  /**
   * Sets the {@code "maximum"} property to the given value
   *
   * @param val
   *   schema maximum value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema maximum(long val);

  /**
   * Sets the {@code "maximum"} property to the given value
   *
   * @param val
   *   schema maximum value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema maximum(BigInteger val);

  /**
   * Removes the {@code "maximum"} property
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema removeMaximum();

  /**
   * Sets the {@code "exclusiveMaximum"} property to the given value
   *
   * @param val
   *   schema {@code "exclusiveMaximum"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema exclusiveMaximum(boolean val);

  /**
   * Removes the {@code "exclusiveMaximum"} property
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema removeExclusiveMaximum();

  /**
   * Sets the {@code "minimum"} property to the given value
   *
   * @param val
   *   schema minimum value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema minimum(int val);

  /**
   * Sets the {@code "minimum"} property to the given value
   *
   * @param val
   *   schema minimum value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema minimum(long val);

  /**
   * Sets the {@code "minimum"} property to the given value
   *
   * @param val
   *   schema minimum value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema minimum(BigInteger val);

  /**
   * Removes the {@code "minimum"} property
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema removeMinimum();

  /**
   * Sets the {@code "exclusiveMinimum"} property to the given value
   *
   * @param val
   *   schema {@code "exclusiveMinimum"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema exclusiveMinimum(boolean val);

  /**
   * Removes the {@code "exclusiveMinimum"} property
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema removeExclusiveMinimum();

  /**
   * Sets the {@code "multipleOf"} property to the given value
   *
   * @param val
   *   schema {@code "multipleOf"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema multipleOf(double val);

  /**
   * Sets the {@code "multipleOf"} property to the given value
   *
   * @param val
   *   schema {@code "multipleOf"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema multipleOf(float val);

  /**
   * Sets the {@code "multipleOf"} property to the given value
   *
   * @param val
   *   schema {@code "multipleOf"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema multipleOf(int val);

  /**
   * Sets the {@code "multipleOf"} property to the given value
   *
   * @param val
   *   schema {@code "multipleOf"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema multipleOf(long val);

  /**
   * Sets the {@code "multipleOf"} property to the given value
   *
   * @param val
   *   schema {@code "multipleOf"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema multipleOf(BigInteger val);

  /**
   * Sets the {@code "multipleOf"} property to the given value
   *
   * @param val
   *   schema {@code "multipleOf"} value
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema multipleOf(BigDecimal val);

  /**
   * Removes the {@code "multipleOf"} property
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema removeMultipleOf();

  /**
   * Sets the {@code "enum"} property to the given array
   *
   * @param val
   *   schema {@code "enum"} array
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema enumValues(int... val);

  /**
   * Sets the {@code "enum"} property to the given array
   *
   * @param val
   *   schema {@code "enum"} array
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema enumValues(long... val);

  /**
   * Sets the {@code "enum"} property to the given array
   *
   * @param val
   *   schema {@code "enum"} array
   *
   * @return a modified {@link IntegerSchema}
   *
   * @since 2.0
   */
  IntegerSchema enumValues(BigInteger... val);

  // ┌─────────────────────────────────────────────────────┐
  // │                                                     │
  // │ Return type overrides                               │
  // │                                                     │
  // └─────────────────────────────────────────────────────┘

  @Override
  IntegerSchema id(String id);

  @Override
  IntegerSchema removeId();

  @Override
  IntegerSchema $schema(String path);

  @Override
  IntegerSchema remove$Schema();

  @Override
  IntegerSchema $ref(String path);

  @Override
  IntegerSchema remove$Ref();

  @Override
  IntegerSchema description(String desc);

  @Override
  IntegerSchema removeDescription();

  @Override
  IntegerSchema title(String title);

  @Override
  IntegerSchema removeTitle();

  @Override
  UntypedChildSchema definition(String name);

  @Override
  IntegerSchema definition(String name, SchemaBuilder schema);

  @Override
  IntegerSchema removeDefinition(String name);

  @Override
  IntegerSchema removeDefinitions();

  @Override
  IntegerSchema defaultValue(JsonNode val);

  @Override
  IntegerSchema removeDefault();

  @Override
  UntypedChildSchema not();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy