View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.scm;
20  
21  import java.io.Serializable;
22  
23  /**
24   * A set of information about revisions of a file as returned by SCM's log
25   * command.
26   *
27   * @author <a href="mailto:dion@multitask.com.au">dIon Gillard </a>
28   * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
29   */
30  public class ChangeFile implements Serializable {
31      private static final long serialVersionUID = 6294855290542668753L;
32  
33      /**
34       * The name of the file relative to the project directory.
35       */
36      private String name;
37  
38      /**
39       * The latest revision of the file.
40       */
41      private String revision;
42  
43      /**
44       * Edit type on the file
45       * note: perhaps we should use a different type, ideally enum? this one seems to target quite different usecases ...
46       *
47       * @since 1.7
48       */
49      private ScmFileStatus action;
50  
51      /**
52       * The name before copying or moving.
53       *
54       * @since 1.7
55       */
56      private String originalName;
57  
58      /**
59       * The revision from which we {@link ScmFileStatus copied} or {@link ScmFileStatus moved} this file or directory.
60       *
61       * @since 1.7
62       */
63      private String originalRevision;
64  
65      /**
66       * Constructor for the ChangeFile object without all details available.
67       *
68       * @param name file name
69       */
70      public ChangeFile(String name) {
71          setName(name);
72      }
73  
74      /**
75       * Constructor for the ChangeFile object.
76       *
77       * @param name file name
78       * @param rev  latest revision of the file
79       */
80      public ChangeFile(String name, String rev) {
81          setName(name);
82  
83          setRevision(rev);
84      }
85  
86      /**
87       * Gets the name attribute of the ChangeLogFile object.
88       *
89       * @return the file name
90       */
91      public String getName() {
92          return name;
93      }
94  
95      /**
96       * Setter for property name.
97       *
98       * @param name new value of property name
99       */
100     public void setName(String name) {
101         this.name = name;
102     }
103 
104     public String getOriginalName() {
105         return originalName;
106     }
107 
108     public void setOriginalName(String originalName) {
109 
110         this.originalName = originalName;
111     }
112 
113     public String getOriginalRevision() {
114         return originalRevision;
115     }
116 
117     public void setOriginalRevision(String originalRevision) {
118         this.originalRevision = originalRevision;
119     }
120 
121     /**
122      * Gets the revision attribute of the ChangeLogFile object.
123      *
124      * @return the latest revision of the file
125      */
126     public String getRevision() {
127         return revision;
128     }
129 
130     /**
131      * Setter for property revision.
132      *
133      * @param revision new value of property revision
134      */
135     public void setRevision(String revision) {
136         this.revision = revision;
137     }
138 
139     public ScmFileStatus getAction() {
140         return action;
141     }
142 
143     public void setAction(ScmFileStatus action) {
144         this.action = action;
145     }
146 
147     /**
148      * Provide a version of the object as a string for debugging purposes.
149      *
150      * @return a {@link String}made up of the properties of the object
151      */
152     public String toString() {
153         StringBuilder buffer = new StringBuilder();
154 
155         if (getAction() != null) {
156             buffer.append("[").append(getAction()).append("]:");
157         }
158 
159         buffer.append(getName());
160         if (getRevision() != null) {
161             buffer.append(", ").append(getRevision());
162         }
163 
164         if (getOriginalName() != null) {
165             buffer.append(", originalName=").append(getOriginalName());
166         }
167 
168         if (getOriginalRevision() != null) {
169             buffer.append(", originalRevision=").append(getOriginalRevision());
170         }
171 
172         return buffer.toString();
173     }
174 }