package eu.dnetlib.clients;

import javax.annotation.PostConstruct;

import eu.dnetlib.enabling.annotations.DnetServiceClient;
import eu.dnetlib.enabling.annotations.DnetServiceType;
import eu.dnetlib.exceptions.DnetGenericException;

public abstract class BaseServiceClient {

	private DnetServiceType serviceType;

	private String baseUrl;

	@PostConstruct
	public void init() throws DnetGenericException {
		if (getClass().isAnnotationPresent(DnetServiceClient.class)) {
			setServiceType(getClass().getAnnotation(DnetServiceClient.class).value());
		} else {
			throw new DnetGenericException("A required annotation is missing (@DnetServiceClient) in class " + getClass());
		}
	}

	public DnetServiceType getServiceType() {
		return serviceType;
	}

	public void setServiceType(final DnetServiceType serviceType) {
		this.serviceType = serviceType;
	}

	public String getBaseUrl() {
		return baseUrl;
	}

	public void setBaseUrl(final String baseUrl) {
		this.baseUrl = baseUrl;
	}

}
