package eu.dnetlib.iis.wf.affmatching.normalize; import java.io.Serializable; import com.google.common.base.Preconditions; import eu.dnetlib.iis.common.string.LenientComparisonStringNormalizer; import eu.dnetlib.iis.common.string.StringNormalizer; import eu.dnetlib.iis.wf.affmatching.model.AffMatchOrganization; /** * * Normalizer of {@link AffMatchOrganization} properties * * @author Ɓukasz Dumiszewski */ public class AffMatchOrganizationNormalizer implements Serializable { private static final long serialVersionUID = 1L; private StringNormalizer organizationNameNormalizer = new OrganizationNameNormalizer(); private StringNormalizer organizationShortNameNormalizer = new OrganizationNameNormalizer(); private StringNormalizer countryNameNormalizer = new LenientComparisonStringNormalizer(); private StringNormalizer countryCodeNormalizer = new CountryCodeNormalizer(); private StringNormalizer websiteUrlNormalizer = new WebsiteUrlNormalizer(); //------------------------ LOGIC -------------------------- /** * Creates a new {@link AffMatchOrganization} based on <code>affMatchOrganization</code>, with its properties normalized * by corresponding normalizers (see setters). */ public AffMatchOrganization normalize(AffMatchOrganization affMatchOrganization) { Preconditions.checkNotNull(affMatchOrganization); AffMatchOrganization normalizedOrganization = new AffMatchOrganization(affMatchOrganization.getId()); normalizedOrganization.setName(organizationNameNormalizer.normalize(affMatchOrganization.getName())); normalizedOrganization.setShortName(organizationShortNameNormalizer.normalize(affMatchOrganization.getShortName())); normalizedOrganization.setCountryName(countryNameNormalizer.normalize(affMatchOrganization.getCountryName())); normalizedOrganization.setCountryCode(countryCodeNormalizer.normalize(affMatchOrganization.getCountryCode())); normalizedOrganization.setWebsiteUrl(websiteUrlNormalizer.normalize(affMatchOrganization.getWebsiteUrl())); return normalizedOrganization; } //------------------------ SETTERS -------------------------- public void setOrganizationNameNormalizer(StringNormalizer organizationNameNormalizer) { this.organizationNameNormalizer = organizationNameNormalizer; } public void setOrganizationShortNameNormalizer(StringNormalizer organizationShortNameNormalizer) { this.organizationShortNameNormalizer = organizationShortNameNormalizer; } public void setCountryNameNormalizer(StringNormalizer countryNameNormalizer) { this.countryNameNormalizer = countryNameNormalizer; } public void setCountryCodeNormalizer(StringNormalizer countryCodeNormalizer) { this.countryCodeNormalizer = countryCodeNormalizer; } public void setWebsiteUrlNormalizer(StringNormalizer websiteUrlNormalizer) { this.websiteUrlNormalizer = websiteUrlNormalizer; } }