package hudson.model.labels;
/**
* Visitor pattern for {@link LabelExpression}.
*
* @author Kohsuke Kawaguchi
* @see LabelExpression#accept(LabelVisitor, Object)
* @since 1.420
*/
public abstract class LabelVisitor<V,P> {
public abstract V onAtom(LabelAtom a, P param);
public abstract V onParen(LabelExpression.Paren p, P param);
public abstract V onNot(LabelExpression.Not p, P param);
public abstract V onAnd(LabelExpression.And p, P param);
public abstract V onOr(LabelExpression.Or p, P param);
public abstract V onIff(LabelExpression.Iff p, P param);
public abstract V onImplies(LabelExpression.Implies p, P param);
}