package edu.stanford.nlp.ling.tokensregex.matcher; /** * Exact match cost function * * @author Angel Chang */ public final class ExactMatchCost<K,V> extends MatchCostFunction.AbstractMatchCostFunction<K,V> { final double mismatchCost; final double insCost; final double delCost; public ExactMatchCost() { this(1); } public ExactMatchCost(double mismatchCost) { this(mismatchCost,1,1); } public ExactMatchCost(double mismatchCost, double insCost, double delCost) { this.mismatchCost = mismatchCost; this.insCost = insCost; this.delCost = delCost; } @Override public double cost(K k1, K k2, int n) { if (k1 != null) { if (k2 == null) return delCost; return (k1.equals(k2))? 0:mismatchCost; } else { return (k2 == null)? 0:insCost; } } }