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.AffMatchAffiliation; /** * * Normalizer of {@link AffMatchAffiliation} properties * * @author Ɓukasz Dumiszewski */ public class AffMatchAffiliationNormalizer implements Serializable { private static final long serialVersionUID = 1L; private StringNormalizer organizationNameNormalizer = new OrganizationNameNormalizer(); private StringNormalizer countryNameNormalizer = new LenientComparisonStringNormalizer(); private StringNormalizer countryCodeNormalizer = new CountryCodeNormalizer(); //------------------------ LOGIC -------------------------- /** * Creates a new {@link AffMatchAffiliation} based on <code>affMatchAffiliation</code>, with its properties normalized * by corresponding normalizers (see setters). */ public AffMatchAffiliation normalize(AffMatchAffiliation affMatchAffiliation) { Preconditions.checkNotNull(affMatchAffiliation); AffMatchAffiliation normalizedAffiliation = new AffMatchAffiliation(affMatchAffiliation.getDocumentId(), affMatchAffiliation.getPosition()); normalizedAffiliation.setOrganizationName(organizationNameNormalizer.normalize(affMatchAffiliation.getOrganizationName())); normalizedAffiliation.setCountryName(countryNameNormalizer.normalize(affMatchAffiliation.getCountryName())); normalizedAffiliation.setCountryCode(countryCodeNormalizer.normalize(affMatchAffiliation.getCountryCode())); return normalizedAffiliation; } //------------------------ SETTERS -------------------------- public void setOrganizationNameNormalizer(StringNormalizer organizationNameNormalizer) { this.organizationNameNormalizer = organizationNameNormalizer; } public void setCountryNameNormalizer(StringNormalizer countryNameNormalizer) { this.countryNameNormalizer = countryNameNormalizer; } public void setCountryCodeNormalizer(StringNormalizer countryCodeNormalizer) { this.countryCodeNormalizer = countryCodeNormalizer; } }