package edu.ucsf.mousedatabase.dataimport; import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TextExpression implements Expression { private String name; private String columnName; private String regex; private String[] groupNames; public TextExpression(String name, String columnName, String regex, String[] groupNames) { this.name = name; this.columnName = columnName; this.regex = regex; this.groupNames = groupNames; } public ExpressionMatch match(HashMap<String,String> row) { ExpressionMatch result = new ExpressionMatch(); Pattern ptn = Pattern.compile(regex); Matcher match = ptn.matcher(row.get(columnName)); //String result = null; if (match.find()) { result.setMatch(true); for (int i = 0; i < match.groupCount(); i++) { result.addGroup(groupNames[i],match.group(i)); } } return result; } public String[] getGroupNames() { return groupNames; } public String getName() { return name; } }