package glug.parser.logmessages;
import glug.groovy.ParserDef;
import org.joda.time.Duration;
import java.util.Map;
import java.util.regex.MatchResult;
public class GroovyDrivenLogMessageParser extends IntervalLogMessageParser {
private final ParserDef parserDef;
public GroovyDrivenLogMessageParser(ParserDef parserDef) {
super(parserDef.logger, parserDef.pattern);
this.parserDef = parserDef;
}
@Override
Map<String, ?> intervalOccupierFor(MatchResult matchResult) {
return (Map<String, ?>) parserDef.data.call(matchResult);
}
@Override
Duration durationFrom(MatchResult matchResult) {
return (Duration) parserDef.duration.call(matchResult);
}
}