/*
* ====================================================================
* 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.io;
import java.util.Collections;
import java.util.Map;
/**
* The <b>SVNLocationEntry</b> represents a mapping of a path to its
* revision. That is, the repository path of an item in a particular
* revision.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
* @see ISVNLocationEntryHandler
*/
public class SVNLocationEntry {
private long myRevision;
private String myPath;
private boolean myIsResultOfMerge;
private Map myMergedMergeInfo;
/**
* Constructs an <b>SVNLocationEntry</b> object.
*
* @param revision a revision number
* @param path an item's path in the reposytory in
* the <code>revision</code>
*/
public SVNLocationEntry(long revision, String path) {
this(revision, path, false, null);
}
/**
* Constructs an <b>SVNLocationEntry</b> object.
*
* @param revision a revision number
* @param path an item's path in the repository in
* the <code>revision</code>
* @param isResultOfMerge whether this <code>revision</code> is a result of a merge
* @param mergedMergeInfo merge info of this path@revision
* @since 1.2.0
*/
public SVNLocationEntry(long revision, String path, boolean isResultOfMerge, Map mergedMergeInfo) {
myRevision = revision;
myPath = path;
myIsResultOfMerge = isResultOfMerge;
myMergedMergeInfo = mergedMergeInfo != null ? Collections.unmodifiableMap(mergedMergeInfo) : null;
}
/**
* Gets the path.
*
* @return a path
*/
public String getPath() {
return myPath;
}
/**
* Gets the revision number.
*
* @return a revision number.
*/
public long getRevision() {
return myRevision;
}
/**
* Tells if this path@revision is a result of a merge operation.
*
* <p/>
* Note: this is always <span class="javakeyword">false</span> for location entry objects received
* through the public APIs. This method is not intended for API users.
*
* @return <span class="javakeyword">true</span> is it's a result of a merge; otherwise
* <span class="javakeyword">false</span>
* @since 1.2.0
*/
public boolean isResultOfMerge() {
return myIsResultOfMerge;
}
/**
* Returns merge info for this path@revision.
*
* <p/>
* Note: this is always <span class="javakeyword">null</span> for location entry objects received
* through the public APIs. This method is not intended for API users.
*
* @return merge info
* @since 1.2.0
*/
public Map getMergedMergeInfo() {
return myMergedMergeInfo;
}
}