Skip to content

Commit 9e5efbf

Browse files
committed
refactor
1 parent 438b3f9 commit 9e5efbf

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

JeMPI_Apps/JeMPI_Linker/src/main/java/org/jembi/jempi/linker/backend/LinkerProbabilistic.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ public final class LinkerProbabilistic {
3838
private static final float MISSING_PENALTY = 0.925F;
3939
static List<ProbabilisticField> currentProbabilisticLinkFields = LINKER_CONFIG.probabilisticLinkFields
4040
.stream()
41-
.map(f -> new ProbabilisticField(getSimilarityFunction(f.similarityScore()), f.comparisonLevels(), f.m(), f.u()))
41+
.map(f -> new ProbabilisticField(getSimilarityFunction(SimilarityFunctionName.valueOf(f.similarityScore())), f.comparisonLevels(), f.m(), f.u()))
4242
.toList();
4343
static List<ProbabilisticField> currentProbabilisticValidateFields = LINKER_CONFIG.probabilisticValidateFields
4444
.stream()
45-
.map(f -> new ProbabilisticField(getSimilarityFunction(f.similarityScore()), f.comparisonLevels(), f.m(), f.u()))
45+
.map(f -> new ProbabilisticField(getSimilarityFunction(SimilarityFunctionName.valueOf(f.similarityScore())), f.comparisonLevels(), f.m(), f.u()))
4646
.toList();
4747
static List<ProbabilisticField> currentProbabilisticMatchFields = LINKER_CONFIG.probabilisticMatchNotificationFields
4848
.stream()
49-
.map(f -> new ProbabilisticField(getSimilarityFunction(f.similarityScore()), f.comparisonLevels(), f.m(), f.u()))
49+
.map(f -> new ProbabilisticField(getSimilarityFunction(SimilarityFunctionName.valueOf(f.similarityScore())), f.comparisonLevels(), f.m(), f.u()))
5050
.toList();
5151

5252
static List<ProbabilisticField> updatedProbabilisticLinkFields = null;
@@ -67,22 +67,30 @@ static List<ProbabilisticField> toLinkProbabilisticFieldList(
6767
final var list = new ArrayList<ProbabilisticField>();
6868
for (int i = 0; i < mu.size(); i++) {
6969
list.add(new ProbabilisticField(
70-
getSimilarityFunction(probabilisticMetaData.get(i).similarityScore()),
70+
getSimilarityFunction(SimilarityFunctionName.valueOf(probabilisticMetaData.get(i).similarityScore())),
7171
probabilisticMetaData.get(i).comparisonLevels(),
7272
mu.get(i).m(), mu.get(i).u()));
7373
}
7474
return list;
7575
}
7676

77-
static SimilarityScore<Double> getSimilarityFunction(final String func) {
77+
public enum SimilarityFunctionName {
78+
JARO_WINKLER_SIMILARITY,
79+
JARO_SIMILARITY,
80+
JACCARD_SIMILARITY,
81+
SOUNDEX_SIMILARITY,
82+
EXACT_SIMILARITY
83+
}
84+
85+
static SimilarityScore<Double> getSimilarityFunction(final SimilarityFunctionName func) {
7886
switch (func) {
79-
case "JARO_WINKLER_SIMILARITY":
87+
case JARO_WINKLER_SIMILARITY:
8088
return JARO_WINKLER_SIMILARITY;
81-
case "JARO_SIMILARITY":
89+
case JARO_SIMILARITY:
8290
return JARO_SIMILARITY;
83-
case "JACCARD_SIMILARITY":
91+
case JACCARD_SIMILARITY:
8492
return JACCARD_SIMILARITY;
85-
case "SOUNDEX_SIMILARITY":
93+
case SOUNDEX_SIMILARITY:
8694
return SOUNDEX_SIMILARITY;
8795
default:
8896
return EXACT_SIMILARITY;
@@ -297,7 +305,7 @@ public Double apply(
297305
return 0.5;
298306
}
299307

300-
return StringUtils.equals(soundex.soundex((String) left), soundex.soundex((String) right))
308+
return StringUtils.equals(soundex.soundex(left.toString()), soundex.soundex(right.toString()))
301309
? 1.0
302310
: 0.0;
303311
}

0 commit comments

Comments
 (0)