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

io.sundr.model.For Maven / Gradle / Ivy

The newest version!
package io.sundr.model;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class For implements Statement {

  private final List init;
  private final Expression compare;
  private final List update;
  private final Statement body;

  public For(List init, Expression compare, List update, Statement body) {
    this.init = init;
    this.compare = compare;
    this.update = update;
    this.body = body;
  }

  public For(Expression init, Expression compare, Expression update, Statement body) {
    this.init = Arrays.asList(init);
    this.compare = compare;
    this.update = Arrays.asList(update);
    this.body = body;
  }

  public List getInit() {
    return init;
  }

  public Expression getCompare() {
    return compare;
  }

  public List getUpdate() {
    return update;
  }

  public Statement getBody() {
    return body;
  }

  @Override
  public String render() {
    StringBuilder sb = new StringBuilder();
    sb.append("for").append(SPACE).append(OP);
    sb.append(init.stream().map(e -> e.render()).map(Renderable::noSemicolon).collect(Collectors.joining(",")));
    sb.append(SEMICOLN);
    sb.append(compare.render());
    sb.append(SEMICOLN);
    sb.append(update.stream().map(e -> e.render()).collect(Collectors.joining(",")));
    sb.append(CP);
    sb.append(SPACE).append(OB).append(NEWLINE);
    sb.append(tab(body.renderStatement()));
    sb.append(CB).append(NEWLINE);
    return sb.toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy