package eu.dnetlib.xml;

import java.util.Arrays;
import java.util.stream.Collectors;

import org.apache.commons.lang3.StringUtils;

/**
 * Created by sandro on 12/6/16.
 */
public class ISTIUtilityFunction {

	public static String cleanName(final String name) {
		if (name == null) { return null; }

		final String newName = name.replaceAll("\\(.*\\)", "")
				.replaceAll("\\[.*\\]", "")
				.replaceAll("(?i)^et\\.? al(\\.|\\s)*$", "")
				.replaceAll("(?i)\\s*et\\.? al(\\.|\\s)*$", "")
				.replaceAll("\\d|\\*", "")
				.replaceAll("^(\\s|\\-|\\.)+", "")
				.trim();

		return Arrays.stream(newName.split(" "))
				.map(String::toLowerCase)
				.map(StringUtils::capitalize)
				.collect(Collectors.joining(" "));
	}
}
