com.obsidiandynamics.blackstrom.manifold.ManifoldBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of blackstrom-core Show documentation
Show all versions of blackstrom-core Show documentation
Transactional event fabric for the JVM
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);
}
}