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

org.codingmatters.poom.ci.dependency.api.optional.OptionalRepositoryModulesPostResponse Maven / Gradle / Ivy

package org.codingmatters.poom.ci.dependency.api.optional;

import java.lang.Throwable;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import org.codingmatters.poom.ci.dependency.api.RepositoryModulesPostResponse;
import org.codingmatters.poom.ci.dependency.api.repositorymodulespostresponse.optional.OptionalStatus201;
import org.codingmatters.poom.ci.dependency.api.repositorymodulespostresponse.optional.OptionalStatus400;
import org.codingmatters.poom.ci.dependency.api.repositorymodulespostresponse.optional.OptionalStatus404;
import org.codingmatters.poom.ci.dependency.api.repositorymodulespostresponse.optional.OptionalStatus500;

public class OptionalRepositoryModulesPostResponse {
  private final Optional optional;

  private OptionalStatus201 status201 = this.status201;

  private OptionalStatus400 status400 = this.status400;

  private OptionalStatus404 status404 = this.status404;

  private OptionalStatus500 status500 = this.status500;

  private OptionalRepositoryModulesPostResponse(RepositoryModulesPostResponse value) {
    this.optional = Optional.ofNullable(value);
  }

  public static OptionalRepositoryModulesPostResponse of(RepositoryModulesPostResponse value) {
    return new OptionalRepositoryModulesPostResponse(value);
  }

  public synchronized OptionalStatus201 status201() {
    if(this.status201 == null) {
      this.status201 = OptionalStatus201.of(this.optional.isPresent() ? this.optional.get().status201() : null);
    }
    return this.status201;
  }

  public synchronized OptionalStatus400 status400() {
    if(this.status400 == null) {
      this.status400 = OptionalStatus400.of(this.optional.isPresent() ? this.optional.get().status400() : null);
    }
    return this.status400;
  }

  public synchronized OptionalStatus404 status404() {
    if(this.status404 == null) {
      this.status404 = OptionalStatus404.of(this.optional.isPresent() ? this.optional.get().status404() : null);
    }
    return this.status404;
  }

  public synchronized OptionalStatus500 status500() {
    if(this.status500 == null) {
      this.status500 = OptionalStatus500.of(this.optional.isPresent() ? this.optional.get().status500() : null);
    }
    return this.status500;
  }

  public RepositoryModulesPostResponse get() {
    return this.optional.get();
  }

  public boolean isPresent() {
    return this.optional.isPresent();
  }

  public void ifPresent(Consumer consumer) {
    this.optional.ifPresent(consumer);
  }

  public Optional filter(Predicate predicate) {
    return this.optional.filter(predicate);
  }

  public  Optional map(Function function) {
    return this.optional.map(function);
  }

  public  Optional flatMap(Function> function) {
    return this.optional.flatMap(function);
  }

  public RepositoryModulesPostResponse orElse(RepositoryModulesPostResponse value) {
    return this.optional.orElse(value);
  }

  public RepositoryModulesPostResponse orElseGet(Supplier supplier) {
    return this.optional.orElseGet(supplier);
  }

  public  RepositoryModulesPostResponse orElseThrow(Supplier supplier) throws X {
    return this.optional.orElseThrow(supplier);
  }
}