// 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 lombok.Data;
import org.edits.etaf.AnnotatedText;
import org.edits.etaf.Annotation;
package org.edits.distance.weight;



@Data
public class WordsIn implements NamedWeightCalculator {

	private static final long serialVersionUID = 1L;
	public static final String WORDS_IN_H = "wordsinh";

	public static final String WORDS_IN_T = "wordsint";

	public static WordsIn wordsInH() {
		return new WordsIn(false);
	}

	public static WordsIn wordsInT() {
		return new WordsIn(true);
	}

	private boolean inT;

	private WordsIn(boolean b) {
		inT = b;
	}

	@Override
	public WeightCalculator clone() {
		return new WordsIn(inT);
	}

	@Override
	public String name() {
		return inT ? WORDS_IN_T : WORDS_IN_H;
	}

	@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/weight/WordsIn.java
import lombok.Data;
import org.edits.etaf.AnnotatedText;
import org.edits.etaf.Annotation;

package org.edits.distance.weight;



@Data
public class WordsIn implements NamedWeightCalculator {

	private static final long serialVersionUID = 1L;
	public static final String WORDS_IN_H = "wordsinh";

	public static final String WORDS_IN_T = "wordsint";

	public static WordsIn wordsInH() {
		return new WordsIn(false);
	}

	public static WordsIn wordsInT() {
		return new WordsIn(true);
	}

	private boolean inT;

	private WordsIn(boolean b) {
		inT = b;
	}

	@Override
	public WeightCalculator clone() {
		return new WordsIn(inT);
	}

	@Override
	public String name() {
		return inT ? WORDS_IN_T : WORDS_IN_H;
	}

	@Override
	public double weightH(Annotation node, AnnotatedText t, AnnotatedText h) {