/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.tool.schema.spi;
import java.util.List;
import org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor;
/**
* Contract for hiding the differences between a passed Reader, File or URL in terms of how we read input
* scripts.
*
* @author Steve Ebersole
*/
public interface ScriptSourceInput {
/**
* Prepare source for use.
*/
void prepare();
/**
* Read the abstracted script, using the given extractor to split up the input into individual commands.
*
* @param commandExtractor The extractor for individual commands within the input.
*
* @return The scripted commands
*/
List<String> read(ImportSqlCommandExtractor commandExtractor);
/**
* Release this input.
*/
void release();
}