/* * ==================================================================== * 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.core.wc.admin; /** * The <b>SVNAdminPath</b> is used to pass path information * to <b>ISVNHistoryHandler</b> and <b>ISVNTreeHandler</b> * * @version 1.3 * @author TMate Software Ltd. * @since 1.2 */ public class SVNAdminPath { private String myPath; private String myNodeID; private long myRevision; private int myTreeDepth; private boolean myIsDir; /** * Constructs a new instance of this class * that is intended for {@link ISVNHistoryHandler}. * * @param path an absolute repository path * @param nodeID a node revision id (optional) * @param revision a revision */ public SVNAdminPath(String path, String nodeID, long revision) { myPath = path; myNodeID = nodeID; myRevision = revision; myTreeDepth = -1; } /** * Constructs a new instance of this class * that is intended for {@link ISVNTreeHandler}. * * @param path an absolute repository path * @param nodeID a node revision id (optional) * @param treeDepth the depth at which <code>path</code> * is located in the tree * @param isDir says whether <code>path</code> is * a directory or a file */ public SVNAdminPath(String path, String nodeID, int treeDepth, boolean isDir) { myPath = path; myNodeID = nodeID; myTreeDepth = treeDepth; myIsDir = isDir; myRevision = -1; } /** * Says whether <code>path</code> is * a directory or a file. This information is * relevant only for {@link ISVNTreeHandler}. * * @return <span class="javakeyword">true</span> for * a directory, <span class="javakeyword">false</span> * for a file */ public boolean isDir() { return myIsDir; } /** * Returns a node revision id. * This information is relevant for both * {@link ISVNTreeHandler} and {@link ISVNHistoryHandler}. * * @return a node revision id */ public String getNodeID() { return myNodeID; } /** * Returns an absolute path. * * @return an absolute path that starts with <code>'/'</code> */ public String getPath() { return myPath; } /** * Returns a revision number. * This information is relevant only for * {@link ISVNHistoryHandler}. * * @return a revision number */ public long getRevision() { return myRevision; } /** * Returns a tree depth for this path which is relative to the depth of the * <code>SVNLookClient.doGetTree(...)</code> target path. * Target path which is passed to <code>SVNLookClient.doGetTree(...)</code> starts * at depth 0. Then depth is incremented with every * other segment of path. * <p> * This information is relevant only for * {@link ISVNTreeHandler}. * * @return a tree depth */ public int getTreeDepth() { return myTreeDepth; } }