// Copyright 2011 Google Inc. All Rights Reserved. package com.google.appengine.tools.mapreduce; import java.io.Serializable; import java.util.List; /** * Input is the data source specification for the job. Input simply defines data source, while * {@link InputReader} handles reading itself. * * <p>This class is really an interface that might be evolving. In order to avoid breaking * users when we change the interface, we made it an abstract class.</p> * */ public abstract class Input<K, V> implements Serializable { private static final long serialVersionUID = 8796820298129705263L; /** * Split input into multiple readers. It's Input's responsibility to determine appropriate * number of readers to split into. This could be specified by user or algorithmically * determined. * * @return list of readers */ public abstract List<? extends InputReader<K, V>> split(MapperJobContext<K, V, ?, ?> context); }