1
2
3
4
5
6
7
8
9
10
11
12
13 package org.eclipse.jgit.lib;
14
15 import static java.nio.charset.StandardCharsets.UTF_8;
16
17 import java.io.ByteArrayOutputStream;
18 import java.io.IOException;
19 import java.io.OutputStreamWriter;
20
21 import org.eclipse.jgit.revwalk.RevObject;
22
23
24
25
26
27
28
29
30
31
32
33 public class TagBuilder {
34 private ObjectId object;
35
36 private int type = Constants.OBJ_BAD;
37
38 private String tag;
39
40 private PersonIdent tagger;
41
42 private String message;
43
44
45
46
47
48
49 public int getObjectType() {
50 return type;
51 }
52
53
54
55
56
57
58 public ObjectId getObjectId() {
59 return object;
60 }
61
62
63
64
65
66
67
68
69
70 public void setObjectId(AnyObjectId obj, int objType) {
71 object = obj.copy();
72 type = objType;
73 }
74
75
76
77
78
79
80
81 public void setObjectId(RevObject obj) {
82 setObjectId(obj, obj.getType());
83 }
84
85
86
87
88
89
90 public String getTag() {
91 return tag;
92 }
93
94
95
96
97
98
99
100
101
102 public void setTag(String shortName) {
103 this.tag = shortName;
104 }
105
106
107
108
109
110
111 public PersonIdent getTagger() {
112 return tagger;
113 }
114
115
116
117
118
119
120
121 public void setTagger(PersonIdent taggerIdent) {
122 tagger = taggerIdent;
123 }
124
125
126
127
128
129
130 public String getMessage() {
131 return message;
132 }
133
134
135
136
137
138
139
140 public void setMessage(String newMessage) {
141 message = newMessage;
142 }
143
144
145
146
147
148
149
150 public byte[] build() {
151 ByteArrayOutputStream os = new ByteArrayOutputStream();
152 try (OutputStreamWriter w = new OutputStreamWriter(os,
153 UTF_8)) {
154 w.write("object ");
155 getObjectId().copyTo(w);
156 w.write('\n');
157
158 w.write("type ");
159 w.write(Constants.typeString(getObjectType()));
160 w.write("\n");
161
162 w.write("tag ");
163 w.write(getTag());
164 w.write("\n");
165
166 if (getTagger() != null) {
167 w.write("tagger ");
168 w.write(getTagger().toExternalString());
169 w.write('\n');
170 }
171
172 w.write('\n');
173 if (getMessage() != null)
174 w.write(getMessage());
175 } catch (IOException err) {
176
177
178
179 throw new RuntimeException(err);
180 }
181 return os.toByteArray();
182 }
183
184
185
186
187
188
189
190 public byte[] toByteArray() {
191 return build();
192 }
193
194
195 @SuppressWarnings("nls")
196 @Override
197 public String toString() {
198 StringBuilder r = new StringBuilder();
199 r.append("Tag");
200 r.append("={\n");
201
202 r.append("object ");
203 r.append(object != null ? object.name() : "NOT_SET");
204 r.append("\n");
205
206 r.append("type ");
207 r.append(object != null ? Constants.typeString(type) : "NOT_SET");
208 r.append("\n");
209
210 r.append("tag ");
211 r.append(tag != null ? tag : "NOT_SET");
212 r.append("\n");
213
214 if (tagger != null) {
215 r.append("tagger ");
216 r.append(tagger);
217 r.append("\n");
218 }
219
220 r.append("\n");
221 r.append(message != null ? message : "");
222 r.append("}");
223 return r.toString();
224 }
225 }