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

io.honnix.rkt.launcher.output.image.ListOutputBuilder Maven / Gradle / Ivy

There is a newer version: 0.0.8
Show newest version
package io.honnix.rkt.launcher.output.image;

import io.honnix.rkt.launcher.model.Image;
import io.norberg.automatter.AutoMatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.annotation.Generated;

@Generated("io.norberg.automatter.processor.AutoMatterProcessor")
public final class ListOutputBuilder {
  private List images;

  public ListOutputBuilder() {
  }

  private ListOutputBuilder(ListOutput v) {
    List _images = v.images();
    this.images = (_images == null) ? null : new ArrayList(_images);
  }

  private ListOutputBuilder(ListOutputBuilder v) {
    this.images = (v.images == null) ? null : new ArrayList(v.images);
  }

  public List images() {
    if (this.images == null) {
      this.images = new ArrayList();
    }
    return images;
  }

  public ListOutputBuilder images(List images) {
    return images((Collection) images);
  }

  public ListOutputBuilder images(Collection images) {
    if (images == null) {
      throw new NullPointerException("images");
    }
    for (Image item : images) {
      if (item == null) {
        throw new NullPointerException("images: null item");
      }
    }
    this.images = new ArrayList(images);
    return this;
  }

  public ListOutputBuilder images(Iterable images) {
    if (images == null) {
      throw new NullPointerException("images");
    }
    if (images instanceof Collection) {
      return images((Collection) images);
    }
    return images(images.iterator());
  }

  public ListOutputBuilder images(Iterator images) {
    if (images == null) {
      throw new NullPointerException("images");
    }
    this.images = new ArrayList();
    while (images.hasNext()) {
      Image item = images.next();
      if (item == null) {
        throw new NullPointerException("images: null item");
      }
      this.images.add(item);
    }
    return this;
  }

  @SafeVarargs
  public final ListOutputBuilder images(Image... images) {
    if (images == null) {
      throw new NullPointerException("images");
    }
    return images(Arrays.asList(images));
  }

  public ListOutputBuilder addImage(Image image) {
    if (image == null) {
      throw new NullPointerException("image");
    }
    if (this.images == null) {
      this.images = new ArrayList();
    }
    images.add(image);
    return this;
  }

  public ListOutput build() {
    List _images = (images != null) ? Collections.unmodifiableList(new ArrayList(images)) : Collections.emptyList();
    return new Value(_images);
  }

  public static ListOutputBuilder from(ListOutput v) {
    return new ListOutputBuilder(v);
  }

  public static ListOutputBuilder from(ListOutputBuilder v) {
    return new ListOutputBuilder(v);
  }

  private static final class Value implements ListOutput {
    private final List images;

    private Value(@AutoMatter.Field("images") List images) {
      this.images = (images != null) ? images : Collections.emptyList();
    }

    @AutoMatter.Field
    @Override
    public List images() {
      return images;
    }

    public ListOutputBuilder builder() {
      return new ListOutputBuilder(this);
    }

    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (!(o instanceof ListOutput)) {
        return false;
      }
      final ListOutput that = (ListOutput) o;
      if (images != null ? !images.equals(that.images()) : that.images() != null) {
        return false;
      }
      return true;
    }

    @Override
    public int hashCode() {
      int result = 1;
      long temp;
      result = 31 * result + (images != null ? images.hashCode() : 0);
      return result;
    }

    @Override
    public String toString() {
      return "ListOutput{" +
      "images=" + images +
      '}';
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy