package com.logica.oam.ktree.enricher;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.camel.Body;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.villemos.ispace.ktree.folder.Item;
public class ReferenceIdEnricher extends VersionEnricher {
/** The logger. */
private static final Log LOG = LogFactory.getLog(ReferenceIdEnricher.class);
// protected String pattern = "(\\p{Alpha}\\p{Alnum}{1,}-\\p{Alpha}{2,}-\\p{Alpha}{2,}-\\p{Alpha}{2,}-\\d{2,}(-\\d{2,})*)" +
protected String pattern = "((\\p{Alpha}\\p{Alnum}{1,}-\\p{Alpha}{2,}-)*\\p{Alpha}{2,}-\\p{Alpha}{2,}-(\\d|X){2,}(-\\d{2,})*)";
protected Integer group = 1;
protected String name = "Reference ID (Title)";
public void process(@Body Map<String, List<Object>> data) {
Pattern thePattern = Pattern.compile(pattern);
for (Object object : data.get("documents")) {
Item item = (Item) object;
Matcher matcher = thePattern.matcher(item.title);
if (matcher.find()) {
String value = matcher.group(group).trim().toUpperCase();
setValue(item, value, name);
}
}
addStatistics(data, "Reference ID Enricher");
}
public String getPattern() {
return pattern;
}
public void setPattern(String pattern) {
this.pattern = pattern;
}
public Integer getGroup() {
return group;
}
public void setGroup(Integer group) {
this.group = group;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}