net.projectmonkey.internal.PropertiesMatcher Maven / Gradle / Ivy
package net.projectmonkey.internal;
import static java.util.Arrays.asList;
import java.util.ArrayList;
import java.util.List;
import net.projectmonkey.config.Configuration;
import net.projectmonkey.spi.NameTokenizer;
import net.projectmonkey.spi.NameableType;
import net.projectmonkey.spi.PropertyInfo;
public class PropertiesMatcher {
private final Configuration configuration;
PropertiesMatcher(final Configuration configuration) {
this.configuration = configuration;
}
public List compareProperties(final List extends PropertyInfo> matching,
final List extends PropertyInfo> matchingAgainst) {
List sourceTokens = getAllTokens(matching, configuration.getSourceNameTokenizer());
List destinationTokens = getAllTokens(matchingAgainst, configuration.getDestinationNameTokenizer());
TokenMatcher matcher = new TokenMatcher(sourceTokens, destinationTokens);
return matcher.match();
}
private List getAllTokens(final List extends PropertyInfo> properties, final NameTokenizer nameTokenizer) {
List toReturn = new ArrayList();
for (PropertyInfo property : properties)
{
NameableType nameableType = NameableType.forPropertyType(property.getPropertyType());
List tokens = asList(nameTokenizer.tokenize(property.getName(), nameableType));
toReturn.addAll(tokens);
}
return toReturn;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy