All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.nn.testtool.metadata.RegexMetadataFieldExtractor Maven / Gradle / Ivy

 package nl.nn.testtool.metadata;

import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import nl.nn.testtool.Checkpoint;
import nl.nn.testtool.Report;

/**
 * @author Jaco de Groot
 */
public class RegexMetadataFieldExtractor extends DefaultValueMetadataFieldExtractor {
	protected String regex;
	protected Pattern pattern;
	protected boolean extractFromFirstCheckpointOnly = true;

	public void setRegex(String regex) {
		this.regex = regex;
		if (regex == null) {
			pattern = null;
		} else {
			pattern = Pattern.compile(regex);
		}
	}

	public void setExtractFromFirstCheckpointOnly(boolean extractFromFirstCheckpointOnly) {
		this.extractFromFirstCheckpointOnly = extractFromFirstCheckpointOnly;
	}

	public Object extractMetadata(Report report) {
		String value = null;
		Iterator iterator = report.getCheckpoints().iterator();
		while (value == null && iterator.hasNext()) {
			String message = ((Checkpoint)iterator.next()).getMessage();
			Matcher matcher = pattern.matcher(message);
			if (matcher.find()) {
				value = matcher.group(matcher.groupCount());
			}
			if (extractFromFirstCheckpointOnly) {
				break;
			}
		}
		if (value == null) {
			value = defaultValue;
		}
		return value;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy