package ru.yandex.qatools.embed.postgresql;
import ru.yandex.qatools.embed.postgresql.config.PostgresConfig;
public enum Command {
Postgres("postgres", PostgresExecutable.class),
InitDb("initdb", InitDbExecutable.class),
CreateDb("createdb", CreateDbExecutable.class),
PgCtl("pg_ctl", PgCtlExecutable.class),
Psql("psql", PsqlExecutable.class),
PgDump("pg_dump", PsqlExecutable.class),
PgRestore("pg_restore", PsqlExecutable.class),
Createuser("createuser", PsqlExecutable.class),
;
private final String commandName;
private final Class<? extends AbstractPGExecutable<PostgresConfig, ? extends AbstractPGProcess>> executableClass;
Command(String commandName,
Class<? extends AbstractPGExecutable<PostgresConfig, ? extends AbstractPGProcess>>
executableClass) {
this.commandName = commandName;
this.executableClass = executableClass;
}
public <E extends AbstractPGExecutable<PostgresConfig, P>, P extends AbstractPGProcess> Class<E> executableClass() {
return (Class<E>) this.executableClass;
}
public String commandName() {
return this.commandName;
}
}