001: /**
002: * @copyright
003: * ====================================================================
004: * Copyright (c) 2003-2005 CollabNet. All rights reserved.
005: *
006: * This software is licensed as described in the file COPYING, which
007: * you should have received as part of this distribution. The terms
008: * are also available at http://subversion.tigris.org/license-1.html.
009: * If newer versions of this license are posted there, you may use a
010: * newer version instead, at your option.
011: *
012: * This software consists of voluntary contributions made by many
013: * individuals. For exact contribution history, see the revision
014: * history and logs, available at http://subversion.tigris.org/.
015: * ====================================================================
016: * @endcopyright
017: */package org.tigris.subversion.javahl;
018:
019: import java.util.Date;
020:
021: /**
022: * this class is returned by SVNClientInterface.info2 and contains information
023: * about items in the repository or working copy
024: * @since 1.2
025: */
026: public class Info2 {
027: /**
028: * the path of the item
029: */
030: private String path;
031: /**
032: * the url of the item
033: */
034: private String url;
035: /**
036: * the revision of the item
037: */
038: private long rev;
039: /**
040: * the item kinds (see NodeKind)
041: */
042: private int kind;
043: /**
044: * the root URL of the repository
045: */
046: private String reposRootUrl;
047: /**
048: * the UUID of the repository
049: */
050: private String reposUUID;
051: /**
052: * the revision of the last change
053: */
054: private long lastChangedRev;
055: /**
056: * the date of the last change in ns
057: */
058: private long lastChangedDate;
059: /**
060: * the author of the last change
061: */
062: private String lastChangedAuthor;
063: /**
064: * the information about any lock (may be null)
065: */
066: private Lock lock;
067: /**
068: * the flag if the remaining fields are set
069: */
070: private boolean hasWcInfo;
071: /**
072: * the scheduled operation at next commit (see ScheduleKind)
073: */
074: private int schedule;
075: /**
076: * if the item was copied, the source url
077: */
078: private String copyFromUrl;
079: /**
080: * if the item was copied, the source rev
081: */
082: private long copyFromRev;
083: /**
084: * the last time the item was changed in ns
085: */
086: private long textTime;
087: /**
088: * the last time the properties of the items were changed in ns
089: */
090: private long propTime;
091: /**
092: * the checksum of the item
093: */
094: private String checksum;
095: /**
096: * if the item is in conflict, the filename of the base version file
097: */
098: private String conflictOld;
099: /**
100: * if the item is in conflict, the filename of the last repository version
101: * file
102: */
103: private String conflictNew;
104: /**
105: * if the item is in conflict, the filename of the working copy version file
106: */
107: private String conflictWrk;
108: /**
109: * the property reject file
110: */
111: private String prejfile;
112:
113: /**
114: * constructor to build the object by native code. See fields for parameters
115: * @param path
116: * @param url
117: * @param rev
118: * @param kind
119: * @param reposRootUrl
120: * @param reposUUID
121: * @param lastChangedRev
122: * @param lastChangedDate
123: * @param lastChangedAuthor
124: * @param lock
125: * @param hasWcInfo
126: * @param schedule
127: * @param copyFromUrl
128: * @param copyFromRev
129: * @param textTime
130: * @param propTime
131: * @param checksum
132: * @param conflictOld
133: * @param conflictNew
134: * @param conflictWrk
135: * @param prejfile
136: */
137: Info2(String path, String url, long rev, int kind,
138: String reposRootUrl, String reposUUID, long lastChangedRev,
139: long lastChangedDate, String lastChangedAuthor, Lock lock,
140: boolean hasWcInfo, int schedule, String copyFromUrl,
141: long copyFromRev, long textTime, long propTime,
142: String checksum, String conflictOld, String conflictNew,
143: String conflictWrk, String prejfile) {
144: this .path = path;
145: this .url = url;
146: this .rev = rev;
147: this .kind = kind;
148: this .reposRootUrl = reposRootUrl;
149: this .reposUUID = reposUUID;
150: this .lastChangedRev = lastChangedRev;
151: this .lastChangedDate = lastChangedDate;
152: this .lastChangedAuthor = lastChangedAuthor;
153: this .lock = lock;
154: this .hasWcInfo = hasWcInfo;
155: this .schedule = schedule;
156: this .copyFromUrl = copyFromUrl;
157: this .copyFromRev = copyFromRev;
158: this .textTime = textTime;
159: this .propTime = propTime;
160: this .checksum = checksum;
161: this .conflictOld = conflictOld;
162: this .conflictNew = conflictNew;
163: this .conflictWrk = conflictWrk;
164: this .prejfile = prejfile;
165: }
166:
167: /**
168: * return the path of the item
169: */
170: public String getPath() {
171: return path;
172: }
173:
174: /**
175: * return the url of the item
176: */
177: public String getUrl() {
178: return url;
179: }
180:
181: /**
182: * return the revision of the item
183: */
184: public long getRev() {
185: return rev;
186: }
187:
188: /**
189: * return the item kinds (see NodeKind)
190: */
191: public int getKind() {
192: return kind;
193: }
194:
195: /**
196: * return the root URL of the repository
197: */
198: public String getReposRootUrl() {
199: return reposRootUrl;
200: }
201:
202: /**
203: * return the UUID of the repository
204: */
205: public String getReposUUID() {
206: return reposUUID;
207: }
208:
209: /**
210: * return the revision of the last change
211: */
212: public long getLastChangedRev() {
213: return lastChangedRev;
214: }
215:
216: /**
217: * return the date of the last change
218: */
219: public Date getLastChangedDate() {
220: if (lastChangedDate == 0)
221: return null;
222: else
223: return new Date(lastChangedDate / 1000);
224: }
225:
226: /**
227: * return the author of the last change
228: */
229: public String getLastChangedAuthor() {
230: return lastChangedAuthor;
231: }
232:
233: /**
234: * return the information about any lock (may be null)
235: */
236: public Lock getLock() {
237: return lock;
238: }
239:
240: /**
241: * return the flag if the working copy fields are set
242: */
243: public boolean isHasWcInfo() {
244: return hasWcInfo;
245: }
246:
247: /**
248: * return the scheduled operation at next commit (see ScheduleKind)
249: */
250: public int getSchedule() {
251: return schedule;
252: }
253:
254: /**
255: * return if the item was copied, the source url
256: */
257: public String getCopyFromUrl() {
258: return copyFromUrl;
259: }
260:
261: /**
262: * return if the item was copied, the source rev
263: */
264: public long getCopyFromRev() {
265: return copyFromRev;
266: }
267:
268: /**
269: * return the last time the item was changed
270: */
271: public Date getTextTime() {
272: if (textTime == 0)
273: return null;
274: else
275: return new Date(textTime / 1000);
276: }
277:
278: /**
279: * return the last time the properties of the items were changed
280: */
281: public Date getPropTime() {
282: if (propTime == 0)
283: return null;
284: else
285: return new Date(propTime / 1000);
286: }
287:
288: /**
289: * return the checksum of the item
290: */
291: public String getChecksum() {
292: return checksum;
293: }
294:
295: /**
296: * return if the item is in conflict, the filename of the base version file
297: */
298: public String getConflictOld() {
299: return conflictOld;
300: }
301:
302: /**
303: * return if the item is in conflict, the filename of the last repository
304: * version file
305: */
306: public String getConflictNew() {
307: return conflictNew;
308: }
309:
310: /**
311: * return if the item is in conflict, the filename of the working copy
312: * version file
313: */
314: public String getConflictWrk() {
315: return conflictWrk;
316: }
317:
318: /**
319: * return the property reject file
320: */
321: public String getPrejfile() {
322: return prejfile;
323: }
324: }
|