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 */
31 public class ChangeFile implements Serializable {
32 private static final long serialVersionUID = 6294855290542668753L;
33
34 /**
35 * the name of the file relative to the project directory.
36 */
37 private String name;
38
39 /**
40 * the latest revision of the file.
41 */
42 private String revision;
43
44 /**
45 * edit type on the file
46 * note: perhaps we should use a different type, ideally enum? this one seems to target quite different usecases ...
47 * @since 1.7
48 */
49 private ScmFileStatus action;
50
51 /**
52 * the name before copying or moving
53 * @since 1.7
54 */
55 private String originalName;
56
57 /**
58 * the revision from which we {@link ScmFileStatus copied} or {@link ScmFileStatus moved} this file or directory
59 * @since 1.7
60 */
61 private String originalRevision;
62
63 /**
64 * Constructor for the ChangeFile object without all details available
65 *
66 * @param name file name
67 */
68 public ChangeFile(String name) {
69 setName(name);
70 }
71
72 /**
73 * Constructor for the ChangeFile object
74 *
75 * @param name file name
76 * @param rev latest revision of the file
77 */
78 public ChangeFile(String name, String rev) {
79 setName(name);
80
81 setRevision(rev);
82 }
83
84 /**
85 * Gets the name attribute of the ChangeLogFile object.
86 *
87 * @return the file name
88 */
89 public String getName() {
90 return name;
91 }
92
93 /**
94 * Setter for property name.
95 *
96 * @param name New value of property name.
97 */
98 public void setName(String name) {
99 this.name = name;
100 }
101
102 public String getOriginalName() {
103 return originalName;
104 }
105
106 public void setOriginalName(String originalName) {
107
108 this.originalName = originalName;
109 }
110
111 public String getOriginalRevision() {
112 return originalRevision;
113 }
114
115 public void setOriginalRevision(String originalRevision) {
116 this.originalRevision = originalRevision;
117 }
118
119 /**
120 * Gets the revision attribute of the ChangeLogFile object.
121 *
122 * @return the latest revision of the file
123 */
124 public String getRevision() {
125 return revision;
126 }
127
128 /**
129 * Setter for property revision.
130 *
131 * @param revision New value of property revision.
132 */
133 public void setRevision(String revision) {
134 this.revision = revision;
135 }
136
137 public ScmFileStatus getAction() {
138 return action;
139 }
140
141 public void setAction(ScmFileStatus action) {
142 this.action = action;
143 }
144
145 /**
146 * Provide a version of the object as a string for debugging purposes
147 *
148 * @return a {@link String}made up of the properties of the object
149 */
150 public String toString() {
151 StringBuilder buffer = new StringBuilder();
152
153 if (getAction() != null) {
154 buffer.append("[").append(getAction()).append("]:");
155 }
156
157 buffer.append(getName());
158 if (getRevision() != null) {
159 buffer.append(", ").append(getRevision());
160 }
161
162 if (getOriginalName() != null) {
163 buffer.append(", originalName=").append(getOriginalName());
164 }
165
166 if (getOriginalRevision() != null) {
167 buffer.append(", originalRevision=").append(getOriginalRevision());
168 }
169
170 return buffer.toString();
171 }
172 }