/*
* ====================================================================
* Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://svnkit.com/license.html.
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
* ====================================================================
*/
package org.tmatesoft.svn.cli.svnlook;
import java.util.Collection;
import java.util.Collections;
import org.tmatesoft.svn.cli.AbstractSVNCommand;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNProperties;
import org.tmatesoft.svn.core.internal.io.fs.FSRepository;
import org.tmatesoft.svn.core.internal.io.fs.FSRoot;
import org.tmatesoft.svn.core.internal.io.fs.FSTransactionRoot;
import org.tmatesoft.svn.core.wc.SVNRevision;
/**
* @version 1.3
* @author TMate Software Ltd.
*/
public abstract class SVNLookCommand extends AbstractSVNCommand {
public SVNLookCommand(String name, String[] aliases) {
super(name, aliases);
}
public Collection getGlobalOptions() {
return Collections.EMPTY_LIST;
}
protected SVNLookCommandEnvironment getSVNLookEnvironment() {
return (SVNLookCommandEnvironment) getEnvironment();
}
protected String getResourceBundleName() {
return "org.tmatesoft.svn.cli.svnlook.commands";
}
protected FSRoot getFSRoot() throws SVNException {
FSRepository repository = getSVNLookEnvironment().getRepository();
if (getSVNLookEnvironment().isRevision()) {
long rev = getSVNLookEnvironment().getRevision();
if (rev < 0) {
rev = repository.getLatestRevision();
}
return repository.getFSFS().createRevisionRoot(rev);
}
return repository.getFSFS().createTransactionRoot(getSVNLookEnvironment().getTransactionInfo());
}
protected SVNProperties getProperties() throws SVNException {
FSRoot root = getFSRoot();
if (root instanceof FSTransactionRoot) {
return root.getOwner().getTransactionProperties(((FSTransactionRoot) root).getTxnID());
}
return root.getOwner().getRevisionProperties(root.getRevision());
}
protected SVNRevision getRevisionObject() {
if (!SVNRevision.isValidRevisionNumber(getSVNLookEnvironment().getRevision())) {
return SVNRevision.HEAD;
}
return SVNRevision.create(getSVNLookEnvironment().getRevision());
}
}