// Path: src/main/java/com/github/fzakaria/waterflow/converter/DataConverter.java
// public interface DataConverter {
// 
//     /**
//      * Given any input object return the String representation of it
//      * @param input The object to serialize
//      * @return The serialized string
//      * @throws DataConverterException if anything goes awry
//      */
//     String toData(Object input) throws DataConverterException;
// 
//     /**
//      * Given a input string and a target type, coerce the string to it
//      * @param input The serialized version of the final output
//      * @param type The type to be converted to
//      * @return The deserialized result
//      * @throws DataConverterException if anything goes awry
//      */
//     <T> T fromData(String input, Type type) throws DataConverterException;
// 
// }


import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow;
import com.github.fzakaria.waterflow.converter.DataConverter;
import com.github.fzakaria.waterflow.immutable.Domain;
import com.github.fzakaria.waterflow.immutable.Name;
import com.github.fzakaria.waterflow.immutable.TaskListName;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import static java.lang.String.format;
package com.github.fzakaria.waterflow.poller;





public abstract class BasePollerPool<PollerType extends BasePoller> {

    protected final Logger log = LoggerFactory.getLogger(getClass());

    public abstract ScheduledThreadPoolExecutor service();
    public abstract TaskListName taskList();
    public abstract Domain domain();
    public abstract AmazonSimpleWorkflow swf();
// Path: src/main/java/com/github/fzakaria/waterflow/converter/DataConverter.java
// public interface DataConverter {
// 
//     /**
//      * Given any input object return the String representation of it
//      * @param input The object to serialize
//      * @return The serialized string
//      * @throws DataConverterException if anything goes awry
//      */
//     String toData(Object input) throws DataConverterException;
// 
//     /**
//      * Given a input string and a target type, coerce the string to it
//      * @param input The serialized version of the final output
//      * @param type The type to be converted to
//      * @return The deserialized result
//      * @throws DataConverterException if anything goes awry
//      */
//     <T> T fromData(String input, Type type) throws DataConverterException;
// 
// }


// Path: src/main/java/com/github/fzakaria/waterflow/poller/BasePollerPool.java
import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow;
import com.github.fzakaria.waterflow.converter.DataConverter;
import com.github.fzakaria.waterflow.immutable.Domain;
import com.github.fzakaria.waterflow.immutable.Name;
import com.github.fzakaria.waterflow.immutable.TaskListName;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import static java.lang.String.format;

package com.github.fzakaria.waterflow.poller;





public abstract class BasePollerPool<PollerType extends BasePoller> {

    protected final Logger log = LoggerFactory.getLogger(getClass());

    public abstract ScheduledThreadPoolExecutor service();
    public abstract TaskListName taskList();
    public abstract Domain domain();
    public abstract AmazonSimpleWorkflow swf();
    public abstract DataConverter dataConverter();