package eu.dnetlib.enabling.manager.msro;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Required;

/**
 * Common subscription action.
 *
 * @author marko
 *
 */
public abstract class AbstractSubscriptionAction implements SubscriptionAction {

	/**
	 * topic expression.
	 */
	private String topicExpression;
	/**
	 * topic prefix.
	 */
	private String topicPrefix;

	public String getTopicExpression() {
		return topicExpression;
	}

	/**
	 * init the default topic prefix.
	 */
	@PostConstruct
	public void init() {
		if (topicPrefix == null)
			topicPrefix = getTopicExpression().replace("/", ".");
	}

	@Required
	public void setTopicExpression(final String topicExpression) {
		this.topicExpression = topicExpression;
	}

	public String getTopicPrefix() {
		return topicPrefix;
	}

	public void setTopicPrefix(final String topicPrefix) {
		this.topicPrefix = topicPrefix;
	}

}
