// Path: edits-core/src/main/java/org/edits/etaf/AnnotatedText.java
// @Data
// @XmlAccessorType(XmlAccessType.FIELD)
// @XmlType(name = "AnnotatedText", propOrder = { "annotation" })
// public class AnnotatedText {
// 
// 	@XmlElement
// 	protected List<Annotation> annotation;
// 
// 	public AnnotatedText() {
// 		annotation = Lists.newArrayList();
// 	}
// }
// 
// Path: edits-core/src/main/java/org/edits/etaf/Annotation.java
// @Data
// @XmlAccessorType(XmlAccessType.FIELD)
// @XmlType(name = "Annotation", propOrder = {})
// @XmlRootElement(name = "annotation")
// public class Annotation {
// 
// 	@XmlAttribute
// 	private String cpostag;
// 	@XmlAttribute
// 	private String deprel;
// 	@XmlAttribute
// 	private int end;
// 	@XmlAttribute
// 	private String feats;
// 	@XmlAttribute
// 	private String form;
// 	@XmlAttribute
// 	private String head;
// 	@XmlAttribute
// 	private String id;
// 	@XmlAttribute
// 	private String lemma;
// 	@XmlAttribute
// 	private String postag;
// 	@XmlAttribute
// 	private int start;
// 
// }


import org.edits.etaf.AnnotatedText;
import org.edits.etaf.Annotation;
import lombok.Data;
		DefaultMatcher dm = new DefaultMatcher();
		dm.setDistanceWord(distanceWord);
		dm.setIgnoreCase(ignoreCase);
		dm.setStrategy(strategy);
		return dm;
	}

	private Double distance(Annotation w1, Annotation w2) {
		String t1 = w1.getForm();
		String t2 = w2.getForm();
		return distance(t1, t2, true);
	}

	private boolean equals(Annotation w1, Annotation w2) {
		if (w1 == null || w2 == null)
			return false;
		switch (strategy) {
		case FORM:
			return equals(w1.getForm(), w2.getForm(), ignoreCase);
		case LEMMA:
			return equals(w1.getLemma(), w2.getLemma(), ignoreCase);
		case FORM_OR_LEMMA:
			return equals(w1.getForm(), w2.getForm(), ignoreCase) || equals(w1.getLemma(), w2.getLemma(), ignoreCase);
		case FORM_AND_LEMMA:
			return equals(w1.getForm(), w2.getForm(), ignoreCase) && equals(w1.getLemma(), w2.getLemma(), ignoreCase);
		}
		return false;
	}

	@Override
// Path: edits-core/src/main/java/org/edits/etaf/AnnotatedText.java
// @Data
// @XmlAccessorType(XmlAccessType.FIELD)
// @XmlType(name = "AnnotatedText", propOrder = { "annotation" })
// public class AnnotatedText {
// 
// 	@XmlElement
// 	protected List<Annotation> annotation;
// 
// 	public AnnotatedText() {
// 		annotation = Lists.newArrayList();
// 	}
// }
// 
// Path: edits-core/src/main/java/org/edits/etaf/Annotation.java
// @Data
// @XmlAccessorType(XmlAccessType.FIELD)
// @XmlType(name = "Annotation", propOrder = {})
// @XmlRootElement(name = "annotation")
// public class Annotation {
// 
// 	@XmlAttribute
// 	private String cpostag;
// 	@XmlAttribute
// 	private String deprel;
// 	@XmlAttribute
// 	private int end;
// 	@XmlAttribute
// 	private String feats;
// 	@XmlAttribute
// 	private String form;
// 	@XmlAttribute
// 	private String head;
// 	@XmlAttribute
// 	private String id;
// 	@XmlAttribute
// 	private String lemma;
// 	@XmlAttribute
// 	private String postag;
// 	@XmlAttribute
// 	private int start;
// 
// }


// Path: edits-core/src/main/java/org/edits/distance/match/DefaultMatcher.java
import org.edits.etaf.AnnotatedText;
import org.edits.etaf.Annotation;
import lombok.Data;

		DefaultMatcher dm = new DefaultMatcher();
		dm.setDistanceWord(distanceWord);
		dm.setIgnoreCase(ignoreCase);
		dm.setStrategy(strategy);
		return dm;
	}

	private Double distance(Annotation w1, Annotation w2) {
		String t1 = w1.getForm();
		String t2 = w2.getForm();
		return distance(t1, t2, true);
	}

	private boolean equals(Annotation w1, Annotation w2) {
		if (w1 == null || w2 == null)
			return false;
		switch (strategy) {
		case FORM:
			return equals(w1.getForm(), w2.getForm(), ignoreCase);
		case LEMMA:
			return equals(w1.getLemma(), w2.getLemma(), ignoreCase);
		case FORM_OR_LEMMA:
			return equals(w1.getForm(), w2.getForm(), ignoreCase) || equals(w1.getLemma(), w2.getLemma(), ignoreCase);
		case FORM_AND_LEMMA:
			return equals(w1.getForm(), w2.getForm(), ignoreCase) && equals(w1.getLemma(), w2.getLemma(), ignoreCase);
		}
		return false;
	}

	@Override
	public double match(Annotation node1, Annotation node2, AnnotatedText t, AnnotatedText h, String pairID) {