// Copyright 2015 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package lemming.lemma.edit;
import java.util.List;
import java.util.Map;
import lemming.lemma.LemmaCandidateGenerator;
import lemming.lemma.LemmaCandidateSet;
import lemming.lemma.LemmaInstance;
import marmot.util.edit.EditTree;
public class EditTreeGenerator implements LemmaCandidateGenerator {
private static final long serialVersionUID = 1L;
private Map<String, List<EditTree>> map_;
private String unknown_;
public EditTreeGenerator(String unknown, Map<String, List<EditTree>> map) {
map_ = map;
unknown_ = unknown;
}
@Override
public void addCandidates(LemmaInstance instance, LemmaCandidateSet set) {
String form = instance.getForm();
String tag = instance.getPosTag();
List<EditTree> trees_ = null;
if (tag != null) {
trees_ = map_.get(tag);
}
if (trees_ == null) {
trees_ = map_.get(unknown_);
}
for (EditTree tree : trees_) {
String lemma = tree.apply(form, 0, form.length());
if (lemma != null) {
set.getCandidate(lemma);
}
}
}
}