Coverage Report - net.sf.statsvn.input.RevisionData
 
Classes in this File Line Coverage Branch Coverage Complexity
RevisionData
0%
0/60
0%
0/12
1.036
 
 1  
 /*
 2  
  StatCvs - CVS statistics generation 
 3  
  Copyright (C) 2002  Lukasz Pekacki <lukasz@pekacki.de>
 4  
  http://statcvs.sf.net/
 5  
  
 6  
  This library is free software; you can redistribute it and/or
 7  
  modify it under the terms of the GNU Lesser General Public
 8  
  License as published by the Free Software Foundation; either
 9  
  version 2.1 of the License, or (at your option) any later version.
 10  
 
 11  
  This library is distributed in the hope that it will be useful,
 12  
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14  
  Lesser General Public License for more details.
 15  
 
 16  
  You should have received a copy of the GNU Lesser General Public
 17  
  License along with this library; if not, write to the Free Software
 18  
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 19  
  
 20  
  $RCSfile: RevisionData.java,v $
 21  
  $Date: 2004/10/12 07:22:42 $
 22  
  */
 23  
 package net.sf.statsvn.input;
 24  
 
 25  
 import java.util.Date;
 26  
 
 27  
 /**
 28  
  * Container for all information contained in one SVN revision.
 29  
  * 
 30  
  * @author Richard Cyganiak <richard@cyganiak.de> *
 31  
  * @author Gunter Mussbacher <gunterm@site.uottawa.ca>
 32  
  * @author Jason Kealey <jkealey@shade.ca>
 33  
  * 
 34  
  * @version $Id: RevisionData.java 351 2008-03-28 18:46:26Z benoitx $
 35  
  */
 36  
 public class RevisionData {
 37  
         private String revisionNumber;
 38  
 
 39  
         private Date date;
 40  
 
 41  
         private String loginName;
 42  
 
 43  0
         private boolean stateExp = false;
 44  
 
 45  0
         private boolean stateDead = false;
 46  
 
 47  0
         private boolean stateAdded = false;
 48  
 
 49  0
         private boolean hasNoLines = true;
 50  
 
 51  
         private int linesAdded;
 52  
 
 53  
         private int linesRemoved;
 54  
 
 55  0
         private String comment = "";
 56  
 
 57  
         private String copyfromPath;
 58  
 
 59  
         private String copyfromRevision;
 60  
 
 61  0
         public RevisionData() {
 62  0
         }
 63  
 
 64  
         /**
 65  
          * @return Returns the loginName.
 66  
          */
 67  
         public String getLoginName() {
 68  0
                 return loginName;
 69  
         }
 70  
 
 71  
         /**
 72  
          * @param authorName
 73  
          *            The loginName to set.
 74  
          */
 75  
         public void setLoginName(final String authorName) {
 76  0
                 this.loginName = authorName;
 77  0
         }
 78  
 
 79  
         /**
 80  
          * @return Returns the date.
 81  
          */
 82  
         public Date getDate() {
 83  0
                 return date != null ? new Date(date.getTime()) : null;
 84  
         }
 85  
 
 86  
         /**
 87  
          * @param date
 88  
          *            The date to set.
 89  
          */
 90  
         public void setDate(final Date date) {
 91  0
                 if (date != null) {
 92  0
                         this.date = new Date(date.getTime());
 93  
                 } else {
 94  0
                         this.date = null;
 95  
                 }
 96  0
         }
 97  
 
 98  
         /**
 99  
          * @return Returns the linesAdded.
 100  
          */
 101  
         public int getLinesAdded() {
 102  0
                 return linesAdded;
 103  
         }
 104  
 
 105  
         /**
 106  
          * @return Returns the linesRemoved.
 107  
          */
 108  
         public int getLinesRemoved() {
 109  0
                 return linesRemoved;
 110  
         }
 111  
 
 112  
         /**
 113  
          * Checks if the revision contains numbers for the added and removed lines.
 114  
          * 
 115  
          * @return true if the revision contains numbers for the added and removed lines
 116  
          */
 117  
         public boolean hasNoLines() {
 118  0
                 return hasNoLines;
 119  
         }
 120  
 
 121  
         /**
 122  
          * Sets the number of added and removed lines.
 123  
          * 
 124  
          * @param added
 125  
          *            The number of added lines
 126  
          * @param removed
 127  
          *            The number of removed lines
 128  
          */
 129  
         public void setLines(final int added, final int removed) {
 130  0
                 this.linesAdded = added;
 131  0
                 this.linesRemoved = removed;
 132  0
                 hasNoLines = false;
 133  0
         }
 134  
 
 135  
         /**
 136  
          * @return Returns the revisionNumber.
 137  
          */
 138  
         public String getRevisionNumber() {
 139  0
                 return revisionNumber;
 140  
         }
 141  
 
 142  
         /**
 143  
          * Sets the revision number.
 144  
          * 
 145  
          * @param revision
 146  
          *            The revision number
 147  
          */
 148  
         public void setRevisionNumber(final String revision) {
 149  0
                 this.revisionNumber = revision;
 150  0
         }
 151  
 
 152  
         /**
 153  
          * Is this revision a deletion?
 154  
          * 
 155  
          * @param isDead
 156  
          *            <tt>true</tt> if revision is a deletion.
 157  
          */
 158  
         public void setStateDead(final boolean isDead) {
 159  0
                 stateDead = isDead;
 160  0
         }
 161  
 
 162  
         /**
 163  
          * Is the revision exposed. This is CVS speak for any "live" revisionNumber, that is, if this is the current revisionNumber, then a file exists in the
 164  
          * working copy.
 165  
          * 
 166  
          * New in StatSVN: We use it to mean this revision is not a deletion revision. (modify, add or replace)
 167  
          * 
 168  
          * @param isExposed
 169  
          *            <tt>true</tt> true if the revision is not a deletion.
 170  
          */
 171  
         public void setStateExp(final boolean isExposed) {
 172  0
                 stateExp = isExposed;
 173  0
         }
 174  
 
 175  
         /**
 176  
          * Is this revision an addition?
 177  
          * 
 178  
          * New in StatSVN: This is no longer a still exists in working copy. We use it to mean this revision is not a deletion revision.
 179  
          * 
 180  
          * @param isAdded
 181  
          */
 182  
         public void setStateAdded(final boolean isAdded) {
 183  0
                 stateAdded = isAdded;
 184  0
         }
 185  
 
 186  
         /**
 187  
          * @return Returns the comment.
 188  
          */
 189  
         public String getComment() {
 190  0
                 return comment;
 191  
         }
 192  
 
 193  
         /**
 194  
          * @param comment
 195  
          *            The comment to set.
 196  
          */
 197  
         public void setComment(final String comment) {
 198  0
                 this.comment = comment;
 199  0
         }
 200  
 
 201  
         /**
 202  
          * Returns <tt>true</tt> if this revisionNumber is the removal of a file.
 203  
          * 
 204  
          * @return <tt>true</tt> if this revisionNumber deletes the file.
 205  
          * 
 206  
          */
 207  
         public boolean isDeletion() {
 208  0
                 return stateDead;
 209  
         }
 210  
 
 211  
         /**
 212  
          * Returns <tt>true</tt> if this revisionNumber is a normal change.
 213  
          * 
 214  
          * New in StatSVN: This was isChangeOrRestore before.
 215  
          * 
 216  
          * @return <tt>true</tt> if this is a normal change or a restore.
 217  
          */
 218  
         public boolean isChange() {
 219  
                 // return stateExp && !hasNoLines;
 220  0
                 return stateExp && !stateAdded;
 221  
         }
 222  
 
 223  
         /**
 224  
          * Returns <tt>true</tt> if this revisionNumber is the creation of a new file or a restore.. The distinction between these two cases can be made by
 225  
          * looking at the previous (in time, not log order) revisionNumber. If it was a deletion, then this revisionNumber is a restore.
 226  
          * 
 227  
          * New in StatSVN: This was isCreation before.
 228  
          * 
 229  
          * @return <tt>true</tt> if this is the creation of a new file.
 230  
          */
 231  
         public boolean isCreationOrRestore() {
 232  
                 // return stateExp && hasNoLines;
 233  0
                 return stateExp && stateAdded;
 234  
         }
 235  
 
 236  
         /**
 237  
          * Returns <tt>true</tt> if this is an Exp ("exposed"?) revisionNumber. This is CVS speak for any "live" revisionNumber, that is, if this is the current
 238  
          * revisionNumber, then a file exists in the working copy.
 239  
          * 
 240  
          * New in StatSVN: We use it to mean this revision is not a deletion revision. (modify, add or replace)
 241  
          * 
 242  
          * @return <tt>true</tt> if this is an Exp revisionNumber
 243  
          */
 244  
         public boolean isStateExp() {
 245  0
                 return stateExp;
 246  
         }
 247  
 
 248  
         /**
 249  
          * Returns <tt>true</tt> if this is a dead revisionNumber. If this is the current revisionNumber, then the file does not exist in the working copy.
 250  
          * 
 251  
          * @return <tt>true</tt> if this is a dead revisionNumber
 252  
          */
 253  
         public boolean isStateDead() {
 254  0
                 return stateDead;
 255  
         }
 256  
 
 257  
         /**
 258  
          * Returns the current revision data in string format.
 259  
          */
 260  
         public String toString() {
 261  0
                 return "RevisionData " + revisionNumber;
 262  
         }
 263  
 
 264  
         /**
 265  
          * Returns a new instance of the RevisionData, with the same fields as the current one.
 266  
          * 
 267  
          * @return the clone
 268  
          */
 269  
         public RevisionData createCopy() {
 270  0
                 final RevisionData copy = new RevisionData(revisionNumber, date, stateExp, stateDead, stateAdded, hasNoLines, linesAdded, linesRemoved);
 271  0
                 copy.setComment(comment);
 272  0
                 copy.setLoginName(loginName);
 273  0
                 return copy;
 274  
         }
 275  
 
 276  
         /**
 277  
          * Private constructor used by (@link #clone())
 278  
          * 
 279  
          * @param revisionNumber
 280  
          *            the revision number
 281  
          * @param date
 282  
          *            the revision date
 283  
          * @param stateExp
 284  
          *            if this were the current revision, would the file still be live (not-dead)
 285  
          * @param stateDead
 286  
          *            is this a deletion revision
 287  
          * @param stateAdded
 288  
          *            is this an addition revision
 289  
          * @param hasNoLines
 290  
          *            have we set the line counts?
 291  
          * @param linesAdded
 292  
          *            number of lines added
 293  
          * @param linesRemoved
 294  
          *            number of lines removed
 295  
          */
 296  
         private RevisionData(final String revisionNumber, final Date date, final boolean stateExp, final boolean stateDead, final boolean stateAdded,
 297  
                 final boolean hasNoLines, final int linesAdded, final int linesRemoved) {
 298  0
                 super();
 299  0
                 this.revisionNumber = revisionNumber;
 300  0
                 this.date = date;
 301  0
                 this.stateExp = stateExp;
 302  0
                 this.stateDead = stateDead;
 303  0
                 this.hasNoLines = hasNoLines;
 304  0
                 this.linesAdded = linesAdded;
 305  0
                 this.linesRemoved = linesRemoved;
 306  0
                 this.stateAdded = stateAdded;
 307  0
         }
 308  
 
 309  
         public String getCopyfromPath() {
 310  0
                 return copyfromPath;
 311  
         }
 312  
 
 313  
         public void setCopyfromPath(final String copyfromPath) {
 314  0
                 this.copyfromPath = copyfromPath;
 315  0
         }
 316  
 
 317  
         public String getCopyfromRevision() {
 318  0
                 return copyfromRevision;
 319  
         }
 320  
 
 321  
         public void setCopyfromRevision(final String copyfromRevision) {
 322  0
                 this.copyfromRevision = copyfromRevision;
 323  0
         }
 324  
 
 325  
 }