package org.Webgatherer.WorkflowExample.Workflows.Base.Common;
import com.google.inject.Injector;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
import org.Webgatherer.Common.Properties.PropertiesContainer;
import org.Webgatherer.CoreEngine.Core.ThreadCommunication.FinalOutputContainer;
import org.Webgatherer.CoreEngine.Core.ThreadCommunication.ThreadCommunication;
import org.htmlcleaner.HtmlCleaner;
import java.lang.reflect.Type;
import java.util.*;
/**
* @author Rick Dane
*/
public abstract class WorkflowBase {
protected Injector injector;
protected Provider<HtmlCleaner> htmlCleanerProvider;
protected HtmlCleaner htmlCleaner;
protected Properties properties;
protected WorkflowBase(Injector injector) {
this.injector = injector;
htmlCleanerProvider = injector.getProvider(HtmlCleaner.class);
htmlCleaner = htmlCleanerProvider.get();
PropertiesContainer propertiesContainer = injector.getInstance(PropertiesContainer.class);
properties = propertiesContainer.getProperties("WorkflowExample");
}
public abstract void runWorkflow(Map<String, Object> workflowParams);
protected void runSubWorkflow(Class clazz) {
}
/**
* Leave blank, its not specifically needed so we don't make it abstract but leave the option for a workflow to implement
* a destroy method, if needed
*/
public void destroyCleanly() {
}
}