package com.github.liblevenshtein.distance.factory;
import java.io.Serializable;
import com.github.liblevenshtein.distance.IDistance;
import com.github.liblevenshtein.transducer.Algorithm;
/**
* Builds instances of Levenshtein distance metrics.
* @author Dylon Edwards
* @param <Term> Type of the terms whose distances are measurable.
* @since 2.1.0
*/
public interface IDistanceFactory<Term> extends Serializable {
/**
* Returns a Levenshtein distance metric that utilizes the request algorithm.
* @param algorithm Type of metric that should be returned
* @return A distance metric that utilizes the request alagorithm
*/
IDistance<Term> build(Algorithm algorithm);
}