1
16 package org.modelmapper.convention;
17
18 import java.util.List;
19
20 import org.modelmapper.spi.MatchingStrategy;
21 import org.modelmapper.spi.PropertyNameInfo;
22 import org.modelmapper.spi.Tokens;
23
24
29 final class StrictMatchingStrategy implements MatchingStrategy {
30 @Override
31 public boolean isExact() {
32 return true;
33 }
34
35 @Override
36 public boolean matches(PropertyNameInfo propertyNameInfo) {
37 List<Tokens> sourceTokens = propertyNameInfo.getSourcePropertyTokens();
38 List<Tokens> destTokens = propertyNameInfo.getDestinationPropertyTokens();
39 if (sourceTokens.size() != destTokens.size())
40 return false;
41
42 for (int propIndex = 0; propIndex < destTokens.size(); propIndex++) {
43 Tokens sTokens = sourceTokens.get(propIndex);
44 Tokens dTokens = destTokens.get(propIndex);
45
46 if (sTokens.size() != dTokens.size())
47 return false;
48
49 for (int tokenIndex = 0; tokenIndex < sTokens.size(); tokenIndex++)
50 if (!sTokens.token(tokenIndex).equalsIgnoreCase(dTokens.token(tokenIndex)))
51 return false;
52 }
53
54 return true;
55 }
56
57 @Override
58 public String toString() {
59 return "Strict";
60 }
61 }
62