package eu.dnetlib.workflow;

import com.googlecode.sarasvati.mem.MemNode;

/**
 * common job.
 *
 * @author marko
 *
 */
public abstract class AbstractJobNode extends MemNode {

	/**
	 * description.
	 */
	private String description;

	public String getDescription() {
		return description;
	}

	public void setDescription(final String description) {
		this.description = description;
	}

	/**
	 * {@inheritDoc}
	 *
	 * @see com.googlecode.sarasvati.mem.MemNode#getAdaptor(java.lang.Class)
	 */
	@SuppressWarnings("unchecked")
	@Override
	public <T> T getAdaptor(final Class<T> clazz) {
		if (clazz == String.class) {
			if (getDescription() == null)
				return (T) getName();
			else
				return (T) getDescription();
		} else {
			return super.getAdaptor(clazz);
		}
	}

}
