/*
* ====================================================================
* 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;
import org.tmatesoft.svn.core.SVNNodeKind;
/**
* <b>SVNChangeEntry</b> objects are used to pass path change information to clients.
* These objects are passed to {@link ISVNChangeEntryHandler}.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
*/
public class SVNChangeEntry {
/**
* Char <span class="javastring">'A'</span> (item added).
*/
public static final char TYPE_ADDED = 'A';
/**
* Char <span class="javastring">'D'</span> (item deleted).
*/
public static final char TYPE_DELETED = 'D';
/**
* Char <span class="javastring">'U'</span> (item updated).
*/
public static final char TYPE_UPDATED = 'U';
private String myPath;
private char myType;
private String myCopyFromPath;
private long myCopyFromRevision;
private boolean myHasTextModifications;
private boolean myHasPropModifications;
private SVNNodeKind myKind;
/**
* Constructs a change entry object.
*
* @param path the path of a changed item
* @param kind node kind
* @param type a change type (one of static fields)
* @param copyFromPath a copy-from source path (if the item is copied)
* @param copyFromRevision a revision of a copy-from source (if the item is copied)
* @param hasTextModifications <span class="javakeyword">true</span> if <code>path</code>
* is a file and it's modified, <span class="javakeyword">false</span>
* otherwise
* @param hasPropModifications <span class="javakeyword">true</span> if the item has
* property modifications
*/
public SVNChangeEntry(String path, SVNNodeKind kind, char type, String copyFromPath, long copyFromRevision, boolean hasTextModifications, boolean hasPropModifications) {
myPath = path;
myKind = kind;
myType = type;
myCopyFromPath = copyFromPath;
myCopyFromRevision = copyFromRevision;
myHasTextModifications = hasTextModifications;
myHasPropModifications = hasPropModifications;
}
/**
* Returns a copy-from source path.
*
* @return a copy-from path
*/
public String getCopyFromPath() {
return myCopyFromPath;
}
/**
* Returns a copy-from source revision.
*
* @return a copy-from revision number
*/
public long getCopyFromRevision() {
return myCopyFromRevision;
}
/**
* Returns the absolute path of the changed item represented by
* this object.
*
* @return the absolute path
*/
public String getPath() {
return myPath;
}
/**
* Returns the type of the item change.
*
* @return a char that is one of static fields of this class
*/
public char getType() {
return myType;
}
/**
* Says whether the item's properties were
* modified.
*
* @return <span class="javakeyword">true</span> if
* the item has property modifications, otherwise
* <span class="javakeyword">false</span>
*/
public boolean hasPropertyModifications() {
return myHasPropModifications;
}
/**
* Says whether the file item's contents were
* modified. This method is relevant only for
* file contents.
*
* @return <span class="javakeyword">true</span> if
* the item has text modifications, otherwise
* <span class="javakeyword">false</span>
*/
public boolean hasTextModifications() {
return myHasTextModifications;
}
/**
* Returns the node kind of the item.
*
* @return an item node kind
*/
public SVNNodeKind getKind() {
return myKind;
}
}