package com.oguerreiro.resilient.activity;

import java.util.List;

/**
 * Just an interface to identify the Activity concept
 */
public interface Activity<AR extends ActivityResult, AG extends ActivityGuide> {
	// Selection strategy definition
	Class appliesToActivityDomainClass();
	List<String> appliesToStates();
	
	// Activity identity
	String getActivityKey();
	
	// Activity methods
	AR doActivity(String activityDomainClass, Long activityDomainId);
}
