001: /*
002: * ====================================================================
003: * Copyright (c) 2004-2008 TMate Software Ltd. All rights reserved.
004: *
005: * This software is licensed as described in the file COPYING, which
006: * you should have received as part of this distribution. The terms
007: * are also available at http://svnkit.com/license.html
008: * If newer versions of this license are posted there, you may use a
009: * newer version instead, at your option.
010: * ====================================================================
011: */
012: package org.tmatesoft.svn.core;
013:
014: import java.util.Date;
015:
016: /**
017: * The <b>SVNLock</b> class represents a file lock. It holds
018: * information on a lock path, token, owner, comment, creation
019: * and expiration dates.
020: *
021: * @version 1.1.1
022: * @author TMate Software Ltd.
023: * @since SVN 1.2
024: * @see <a target="_top" href="http://svnkit.com/kb/examples/">Examples</a>
025: */
026: public class SVNLock {
027:
028: private String myPath;
029: private String myID;
030: private String myOwner;
031: private String myComment;
032:
033: private Date myCreationDate;
034: private Date myExpirationDate;
035:
036: /**
037: * <p>
038: * Constructs an <b>SVNLock</b> object.
039: *
040: *
041: * @param path a file path, relative to the repository root
042: * directory
043: * @param id a string token identifying the lock
044: * @param owner the owner of the lock
045: * @param comment a comment message for the lock (optional)
046: * @param created a datestamp when the lock was created
047: * @param expires a datestamp when the lock expires, i.e. the file is
048: * unlocked (optional)
049: */
050: public SVNLock(String path, String id, String owner,
051: String comment, Date created, Date expires) {
052: myPath = path;
053: myID = id;
054: myOwner = owner;
055: myComment = comment;
056: myCreationDate = created;
057: myExpirationDate = expires;
058: }
059:
060: /**
061: * Gets the lock comment.
062: *
063: * @return a lock comment message
064: */
065: public String getComment() {
066: return myComment;
067: }
068:
069: /**
070: * Gets the creation datestamp of this lock.
071: *
072: * @return a datestamp representing the moment in
073: * time when this lock was created
074: */
075: public Date getCreationDate() {
076: return myCreationDate;
077: }
078:
079: /**
080: * Gets the expiration datestamp of this lock.
081: *
082: * @return a datestamp representing the moment in time
083: * when the this lock expires
084: */
085: public Date getExpirationDate() {
086: return myExpirationDate;
087: }
088:
089: /**
090: * Gets the lock token.
091: *
092: * @return a unique string identifying this lock
093: */
094: public String getID() {
095: return myID;
096: }
097:
098: /**
099: * Gets the lock owner.
100: *
101: * @return the owner of this lock
102: */
103: public String getOwner() {
104: return myOwner;
105: }
106:
107: /**
108: * Gets the path of the file for which this lock was created.
109: * The path is relative to the repository root directory.
110: *
111: * @return the path of the locked file
112: */
113: public String getPath() {
114: return myPath;
115: }
116:
117: /**
118: * Returns a string representation of this object.
119: *
120: * @return a string representation of this lock object
121: */
122: public String toString() {
123: StringBuffer result = new StringBuffer();
124: result.append("path=");
125: result.append(myPath);
126: result.append(", token=");
127: result.append(myID);
128: result.append(", owner=");
129: result.append(myOwner);
130: if (myComment != null) {
131: result.append(", comment=");
132: result.append(myComment);
133: }
134: result.append(", created=");
135: result.append(myCreationDate);
136: if (myExpirationDate != null) {
137: result.append(", expires=");
138: result.append(myExpirationDate);
139: }
140: return result.toString();
141: }
142: }
|