All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 matching,
			final List 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 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