package com.thoughtworks.gauge.execution.parameters.parsers.base;
import com.thoughtworks.gauge.execution.parameters.ParsingException;
import gauge.messages.Spec.Parameter;
public abstract class BaseParameterParser implements ParameterParser {
private ParameterParser next;
public BaseParameterParser(ParameterParser next) {
this.next = next;
}
protected abstract boolean condition(Class<?> parameterType, Parameter parameter);
protected abstract Object parseParameter(Class<?> parameterType, Parameter parameter) throws ParsingException;
@Override
public Object parse(Class<?> parameterType, Parameter parameter) throws ParsingException {
if (condition(parameterType, parameter)) {
return parseParameter(parameterType, parameter);
}
return next.parse(parameterType, parameter);
}
}