package org.basex.core.cmd;
import static org.basex.core.Text.*;
import java.io.IOException;
import org.basex.core.Command;
import org.basex.core.CommandBuilder;
import org.basex.core.User;
import org.basex.core.Commands.Cmd;
import org.basex.core.Commands.CmdRepo;
import org.basex.data.DataText;
import org.basex.query.util.pkg.Package;
import org.basex.util.Table;
import org.basex.util.list.TokenList;
/**
* Evaluates the 'repo list' command.
* @author BaseX Team 2005-12, BSD License
* @author Rositsa Shadura
*/
public final class RepoList extends Command {
/**
* Constructor.
*/
public RepoList() {
super(User.ADMIN);
}
@Override
protected boolean run() throws IOException {
final Table t = new Table();
t.description = PACKAGES_X;
t.header.add(DataText.TABLEURI);
t.header.add(VERSINFO);
t.header.add(DIRECTORY);
for(final byte[] p : context.repo.pkgDict()) {
if(p != null) {
final TokenList tl = new TokenList();
tl.add(Package.name(p));
tl.add(Package.version(p));
tl.add(context.repo.pkgDict().get(p));
t.contents.add(tl);
}
}
t.sort();
out.println(t.finish());
return true;
}
@Override
public void build(final CommandBuilder cb) {
cb.init(Cmd.REPO + " " + CmdRepo.LIST).args();
}
}