package eu.dnetlib.common.services;

import javax.jws.WebService;

import eu.dnetlib.rmi.soap.BaseService;

public class ServiceNameResolver {

	public static String resolveServiceName(final Class<? extends BaseService> clazz) {
		if (clazz.isInterface() && clazz.isAnnotationPresent(WebService.class)) {
			return clazz.getSimpleName();
		} else {
			for (Class<?> ifc : clazz.getInterfaces()) {
				if (ifc.isAnnotationPresent(WebService.class)) { return ifc.getSimpleName(); }
			}
			for (Class<?> ifc : clazz.getInterfaces()) {
				if (BaseService.class.isAssignableFrom(ifc)) { return ifc.getSimpleName(); }
			}
		}
		return clazz.getSimpleName();
	}
}
