package be.jeffcheasey88.peeratcode.parser.state; import java.util.function.BiFunction; import be.jeffcheasey88.peeratcode.parser.Bag; import be.jeffcheasey88.peeratcode.parser.TokenValidator; public class BuilderStateTree extends StateTree{ private BiFunction builder; public BuilderStateTree(BiFunction builder){ super(); this.builder = builder; } B build(TokenValidator validator, E element){ B build = this.builder.apply(element, validator.pullValidated()); validator.pushValidated(); validator.setBag(new Bag()); super.internalSeed(validator, build); return build; } }