MatchRule15.java
01 package gate.creole.orthomatcher;
02 
03 
04 /**
05  * RULE #14: if the last token of one name
06  * matches the second name
07  * e.g. "Hamish Cunningham" == "Cunningham"
08  * Condition(s): case-insensitive match
09  * Applied to: all person annotations
10  *
11  * Don't need to nicknames here
12  */
13 public class MatchRule15 implements OrthoMatcherRule {
14 
15   OrthoMatcher orthomatcher;
16   
17   public MatchRule15(OrthoMatcher orthmatcher){
18       this.orthomatcher=orthmatcher;
19   }
20   
21   @Override
22   public boolean value(String s1, String s2) {
23     
24     boolean result=false;
25     
26   //  if (s1.equalsIgnoreCase("chin") || s2.equalsIgnoreCase("chin"))
27   //  Out.prln("Rule 14 " + s1 + " and " + s2);
28       String s1_short = (String)
29       orthomatcher.tokensLongAnnot.get(
30           orthomatcher.tokensLongAnnot.size()-1).getFeatures().get(OrthoMatcher.TOKEN_STRING_FEATURE_NAME);
31   //  Out.prln("Converted to " + s1_short);
32       if (orthomatcher.tokensLongAnnot.size()>&& OrthoMatcherHelper.straightCompare(s1_short, s2,orthomatcher.caseSensitive)) {
33        if (OrthoMatcher.log.isDebugEnabled()) {
34          OrthoMatcher.log.debug("rule 15 matched " + s1 + "(id: " + orthomatcher.longAnnot.getId() ") to "  + s2 
35                   "(id: " + orthomatcher.shortAnnot.getId() ")");
36        }
37         result = true;
38       }
39 
40       if (resultOrthoMatcherHelper.usedRule(15);
41       return result;
42   }
43   
44   @Override
45   public String getId(){
46     return "MatchRule15";
47   }
48 }