org.unlaxer.parser.combinator.ChildOccursWithTerminator Maven / Gradle / Ivy
package org.unlaxer.parser.combinator;
import java.util.Optional;
import org.unlaxer.Name;
import org.unlaxer.parser.ChildOccurs;
import org.unlaxer.parser.Parser;
import org.unlaxer.parser.Parsers;
public abstract class ChildOccursWithTerminator extends ConstructedOccurs {
private static final long serialVersionUID = -4411440278839259161L;
Optional terminator;
public ChildOccursWithTerminator(Parser inner) {
this(inner,null);
}
ChildOccursWithTerminator(Parser inner,Parser terminator) {
this(null,inner,terminator);
}
public ChildOccursWithTerminator(Name name , Parser inner) {
this(name , inner, null);
}
ChildOccursWithTerminator(Name name , Parser inner,Parser terminator) {
super(name , terminator == null ?
new Parsers(inner):
new Parsers(inner,terminator));
this.terminator = Optional.ofNullable(terminator);
}
@Override
public Parser createParser() {
return this;
}
@Override
public ChildOccurs getChildOccurs() {
return ChildOccurs.multi;
}
@Override
public Optional getTerminator(){
return terminator;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy