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

com.obsidiandynamics.blackstrom.manifold.ManifoldBuilder Maven / Gradle / Ivy

The newest version!
package com.obsidiandynamics.blackstrom.manifold;

import java.util.*;

import com.obsidiandynamics.blackstrom.factor.*;
import com.obsidiandynamics.blackstrom.ledger.*;

public final class ManifoldBuilder {
  private Ledger ledger;

  private final Set factors = new HashSet<>();

  ManifoldBuilder() {}

  public ManifoldBuilder withLedger(Ledger ledger) {
    this.ledger = ledger;
    return this;
  }

  public ManifoldBuilder withFactor(Factor factor) {
    return withFactors(Set.of(factor));
  }

  public ManifoldBuilder withFactors(Factor... factors) {
    return withFactors(List.of(factors));
  }

  public ManifoldBuilder withFactors(Collection factors) {
    this.factors.addAll(factors);
    return this;
  }

  public Manifold build() {
    return new Manifold(ledger, factors);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy