Line data Source code
1 : // Copyright (C) 2013 The Android Open Source Project
2 : //
3 : // Licensed under the Apache License, Version 2.0 (the "License");
4 : // you may not use this file except in compliance with the License.
5 : // You may obtain a copy of the License at
6 : //
7 : // http://www.apache.org/licenses/LICENSE-2.0
8 : //
9 : // Unless required by applicable law or agreed to in writing, software
10 : // distributed under the License is distributed on an "AS IS" BASIS,
11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 : // See the License for the specific language governing permissions and
13 : // limitations under the License.
14 :
15 : package com.google.gerrit.extensions.api.changes;
16 :
17 : import com.google.common.collect.ImmutableListMultimap;
18 : import com.google.common.collect.Sets;
19 : import com.google.gerrit.common.Nullable;
20 : import com.google.gerrit.extensions.client.ListChangesOption;
21 : import com.google.gerrit.extensions.client.ReviewerState;
22 : import com.google.gerrit.extensions.common.AccountInfo;
23 : import com.google.gerrit.extensions.common.ChangeInfo;
24 : import com.google.gerrit.extensions.common.ChangeInfoDifference;
25 : import com.google.gerrit.extensions.common.ChangeMessageInfo;
26 : import com.google.gerrit.extensions.common.CommentInfo;
27 : import com.google.gerrit.extensions.common.CommitMessageInput;
28 : import com.google.gerrit.extensions.common.MergePatchSetInput;
29 : import com.google.gerrit.extensions.common.PureRevertInfo;
30 : import com.google.gerrit.extensions.common.RevertSubmissionInfo;
31 : import com.google.gerrit.extensions.common.RobotCommentInfo;
32 : import com.google.gerrit.extensions.common.SubmitRequirementInput;
33 : import com.google.gerrit.extensions.common.SubmitRequirementResultInfo;
34 : import com.google.gerrit.extensions.common.SuggestedReviewerInfo;
35 : import com.google.gerrit.extensions.restapi.NotImplementedException;
36 : import com.google.gerrit.extensions.restapi.RestApiException;
37 : import java.util.Arrays;
38 : import java.util.Collection;
39 : import java.util.EnumSet;
40 : import java.util.List;
41 : import java.util.Map;
42 : import java.util.Set;
43 :
44 : public interface ChangeApi {
45 : String id();
46 :
47 : /**
48 : * Look up the current revision for the change.
49 : *
50 : * <p><strong>Note:</strong> This method eagerly reads the revision. Methods that mutate the
51 : * revision do not necessarily re-read the revision. Therefore, calling a getter method on an
52 : * instance after calling a mutation method on that same instance is not guaranteed to reflect the
53 : * mutation. It is not recommended to store references to {@code RevisionApi} instances.
54 : *
55 : * @return API for accessing the revision.
56 : * @throws RestApiException if an error occurred.
57 : */
58 : default RevisionApi current() throws RestApiException {
59 75 : return revision("current");
60 : }
61 :
62 : /**
63 : * Look up a revision of a change by number.
64 : *
65 : * @see #current()
66 : */
67 : default RevisionApi revision(int id) throws RestApiException {
68 29 : return revision(Integer.toString(id));
69 : }
70 :
71 : /**
72 : * Look up a revision of a change by commit SHA-1 or other supported revision string.
73 : *
74 : * @see #current()
75 : */
76 : RevisionApi revision(String id) throws RestApiException;
77 :
78 : /**
79 : * Look up the reviewer of the change.
80 : *
81 : * <p>
82 : *
83 : * @param id ID of the account, can be a string of the format "Full Name
84 : * <mail@example.com>", just the email address, a full name if it is unique, an account
85 : * ID, a user name or 'self' for the calling user.
86 : * @return API for accessing the reviewer.
87 : * @throws RestApiException if id is not account ID or is a user that isn't known to be a reviewer
88 : * for this change.
89 : */
90 : ReviewerApi reviewer(String id) throws RestApiException;
91 :
92 : default void abandon() throws RestApiException {
93 18 : abandon(new AbandonInput());
94 18 : }
95 :
96 : void abandon(AbandonInput in) throws RestApiException;
97 :
98 : default void restore() throws RestApiException {
99 5 : restore(new RestoreInput());
100 5 : }
101 :
102 : void restore(RestoreInput in) throws RestApiException;
103 :
104 : default void move(String destination) throws RestApiException {
105 2 : MoveInput in = new MoveInput();
106 2 : in.destinationBranch = destination;
107 2 : move(in);
108 2 : }
109 :
110 : void move(MoveInput in) throws RestApiException;
111 :
112 : void setPrivate(boolean value, @Nullable String message) throws RestApiException;
113 :
114 : default void setPrivate(boolean value) throws RestApiException {
115 6 : setPrivate(value, null);
116 6 : }
117 :
118 : void setWorkInProgress(@Nullable String message) throws RestApiException;
119 :
120 : void setReadyForReview(@Nullable String message) throws RestApiException;
121 :
122 : default void setWorkInProgress() throws RestApiException {
123 10 : setWorkInProgress(null);
124 10 : }
125 :
126 : default void setReadyForReview() throws RestApiException {
127 7 : setReadyForReview(null);
128 7 : }
129 :
130 : /**
131 : * Create a new change that reverts this change.
132 : *
133 : * @see Changes#id(int)
134 : */
135 : default ChangeApi revert() throws RestApiException {
136 13 : return revert(new RevertInput());
137 : }
138 :
139 : /**
140 : * Create a new change that reverts this change.
141 : *
142 : * @see Changes#id(int)
143 : */
144 : ChangeApi revert(RevertInput in) throws RestApiException;
145 :
146 : default RevertSubmissionInfo revertSubmission() throws RestApiException {
147 1 : return revertSubmission(new RevertInput());
148 : }
149 :
150 : RevertSubmissionInfo revertSubmission(RevertInput in) throws RestApiException;
151 :
152 : /** Create a merge patch set for the change. */
153 : ChangeInfo createMergePatchSet(MergePatchSetInput in) throws RestApiException;
154 :
155 : ChangeInfo applyPatch(ApplyPatchPatchSetInput in) throws RestApiException;
156 :
157 : default List<ChangeInfo> submittedTogether() throws RestApiException {
158 10 : SubmittedTogetherInfo info =
159 10 : submittedTogether(
160 10 : EnumSet.noneOf(ListChangesOption.class), EnumSet.noneOf(SubmittedTogetherOption.class));
161 10 : return info.changes;
162 : }
163 :
164 : default SubmittedTogetherInfo submittedTogether(EnumSet<SubmittedTogetherOption> options)
165 : throws RestApiException {
166 2 : return submittedTogether(EnumSet.noneOf(ListChangesOption.class), options);
167 : }
168 :
169 : SubmittedTogetherInfo submittedTogether(
170 : EnumSet<ListChangesOption> listOptions, EnumSet<SubmittedTogetherOption> submitOptions)
171 : throws RestApiException;
172 :
173 : /** Rebase the current revision of a change using default options. */
174 : default void rebase() throws RestApiException {
175 4 : rebase(new RebaseInput());
176 4 : }
177 :
178 : /** Rebase the current revision of a change. */
179 : void rebase(RebaseInput in) throws RestApiException;
180 :
181 : /** Deletes a change. */
182 : void delete() throws RestApiException;
183 :
184 : String topic() throws RestApiException;
185 :
186 : void topic(String topic) throws RestApiException;
187 :
188 : IncludedInInfo includedIn() throws RestApiException;
189 :
190 : default ReviewerResult addReviewer(String reviewer) throws RestApiException {
191 20 : ReviewerInput in = new ReviewerInput();
192 20 : in.reviewer = reviewer;
193 20 : return addReviewer(in);
194 : }
195 :
196 : ReviewerResult addReviewer(ReviewerInput in) throws RestApiException;
197 :
198 : SuggestedReviewersRequest suggestReviewers() throws RestApiException;
199 :
200 : default SuggestedReviewersRequest suggestReviewers(String query) throws RestApiException {
201 1 : return suggestReviewers().withQuery(query);
202 : }
203 :
204 : default SuggestedReviewersRequest suggestCcs(String query) throws RestApiException {
205 1 : return suggestReviewers().forCc().withQuery(query);
206 : }
207 :
208 : /**
209 : * Retrieve reviewers ({@code ReviewerState.REVIEWER} and {@code ReviewerState.CC}) on the change.
210 : */
211 : List<ReviewerInfo> reviewers() throws RestApiException;
212 :
213 : ChangeInfo get(
214 : EnumSet<ListChangesOption> options, ImmutableListMultimap<String, String> pluginOptions)
215 : throws RestApiException;
216 :
217 : default ChangeInfo get(ImmutableListMultimap<String, String> pluginOptions)
218 : throws RestApiException {
219 1 : return get(EnumSet.noneOf(ListChangesOption.class), pluginOptions);
220 : }
221 :
222 : default ChangeInfo get(EnumSet<ListChangesOption> options) throws RestApiException {
223 67 : return get(options, ImmutableListMultimap.of());
224 : }
225 :
226 : default ChangeInfo get(Iterable<ListChangesOption> options) throws RestApiException {
227 29 : return get(Sets.newEnumSet(options, ListChangesOption.class));
228 : }
229 :
230 : default ChangeInfo get(ListChangesOption... options) throws RestApiException {
231 29 : return get(Arrays.asList(options));
232 : }
233 :
234 : /**
235 : * {@link #get(ListChangesOption...)} with all options included, except for the following.
236 : *
237 : * <ul>
238 : * <li>{@code CHECK} is omitted, to skip consistency checks.
239 : * <li>{@code SKIP_DIFFSTAT} is omitted to ensure diffstat calculations.
240 : * </ul>
241 : */
242 : default ChangeInfo get() throws RestApiException {
243 57 : return get(
244 57 : EnumSet.complementOf(EnumSet.of(ListChangesOption.CHECK, ListChangesOption.SKIP_DIFFSTAT)));
245 : }
246 :
247 : default ChangeInfoDifference metaDiff(
248 : @Nullable String oldMetaRevId, @Nullable String newMetaRevId) throws RestApiException {
249 1 : return metaDiff(
250 : oldMetaRevId,
251 : newMetaRevId,
252 1 : EnumSet.noneOf(ListChangesOption.class),
253 1 : ImmutableListMultimap.of());
254 : }
255 :
256 : default ChangeInfoDifference metaDiff(
257 : @Nullable String oldMetaRevId, @Nullable String newMetaRevId, ListChangesOption... options)
258 : throws RestApiException {
259 1 : return metaDiff(oldMetaRevId, newMetaRevId, Arrays.asList(options));
260 : }
261 :
262 : default ChangeInfoDifference metaDiff(
263 : @Nullable String oldMetaRevId,
264 : @Nullable String newMetaRevId,
265 : Collection<ListChangesOption> options)
266 : throws RestApiException {
267 1 : return metaDiff(
268 : oldMetaRevId,
269 : newMetaRevId,
270 1 : Sets.newEnumSet(options, ListChangesOption.class),
271 1 : ImmutableListMultimap.of());
272 : }
273 :
274 : /**
275 : * Gets the diff between a change's metadata with the two given refs.
276 : *
277 : * @param oldMetaRevId the SHA-1 of the 'before' metadata diffed against {@code newMetaRevId}
278 : * @param newMetaRevId the SHA-1 of the 'after' metadata diffed against {@code oldMetaRevId}
279 : */
280 : ChangeInfoDifference metaDiff(
281 : @Nullable String oldMetaRevId,
282 : @Nullable String newMetaRevId,
283 : EnumSet<ListChangesOption> options,
284 : ImmutableListMultimap<String, String> pluginOptions)
285 : throws RestApiException;
286 :
287 : /** {@link #get(ListChangesOption...)} with no options included. */
288 : default ChangeInfo info() throws RestApiException {
289 24 : return get(EnumSet.noneOf(ListChangesOption.class));
290 : }
291 :
292 : /**
293 : * Provides access to an API regarding the change edit of this change.
294 : *
295 : * @return a {@code ChangeEditApi} for the change edit of this change
296 : * @throws RestApiException if the API isn't accessible
297 : */
298 : ChangeEditApi edit() throws RestApiException;
299 :
300 : /** Create a new patch set with a new commit message. */
301 : default void setMessage(String message) throws RestApiException {
302 3 : CommitMessageInput in = new CommitMessageInput();
303 3 : in.message = message;
304 3 : setMessage(in);
305 3 : }
306 :
307 : /** Create a new patch set with a new commit message. */
308 : void setMessage(CommitMessageInput in) throws RestApiException;
309 :
310 : /** Set hashtags on a change */
311 : void setHashtags(HashtagsInput input) throws RestApiException;
312 :
313 : /**
314 : * Get hashtags on a change.
315 : *
316 : * @return hashtags
317 : */
318 : Set<String> getHashtags() throws RestApiException;
319 :
320 : /**
321 : * Manage the attention set.
322 : *
323 : * @param id The account identifier.
324 : */
325 : AttentionSetApi attention(String id) throws RestApiException;
326 :
327 : /** Adds a user to the attention set. */
328 : AccountInfo addToAttentionSet(AttentionSetInput input) throws RestApiException;
329 :
330 : /** Set the assignee of a change. */
331 : AccountInfo setAssignee(AssigneeInput input) throws RestApiException;
332 :
333 : /** Get the assignee of a change. */
334 : AccountInfo getAssignee() throws RestApiException;
335 :
336 : /** Get all past assignees. */
337 : List<AccountInfo> getPastAssignees() throws RestApiException;
338 :
339 : /**
340 : * Delete the assignee of a change.
341 : *
342 : * @return the assignee that was deleted, or null if there was no assignee.
343 : */
344 : AccountInfo deleteAssignee() throws RestApiException;
345 :
346 : /**
347 : * Get all published comments on a change.
348 : *
349 : * @return comments in a map keyed by path; comments have the {@code revision} field set to
350 : * indicate their patch set.
351 : * @deprecated Callers should use {@link #commentsRequest()} instead
352 : */
353 : @Deprecated
354 : default Map<String, List<CommentInfo>> comments() throws RestApiException {
355 0 : return commentsRequest().get();
356 : }
357 :
358 : /**
359 : * Get all published comments on a change as a list.
360 : *
361 : * @return comments as a list; comments have the {@code revision} field set to indicate their
362 : * patch set.
363 : * @deprecated Callers should use {@link #commentsRequest()} instead
364 : */
365 : @Deprecated
366 : default List<CommentInfo> commentsAsList() throws RestApiException {
367 0 : return commentsRequest().getAsList();
368 : }
369 :
370 : /**
371 : * Get a {@link CommentsRequest} entity that can be used to retrieve published comments.
372 : *
373 : * @return A {@link CommentsRequest} entity that can be used to retrieve the comments using the
374 : * {@link CommentsRequest#get()} or {@link CommentsRequest#getAsList()}.
375 : */
376 : CommentsRequest commentsRequest() throws RestApiException;
377 :
378 : /**
379 : * Get all robot comments on a change.
380 : *
381 : * @return robot comments in a map keyed by path; robot comments have the {@code revision} field
382 : * set to indicate their patch set.
383 : */
384 : Map<String, List<RobotCommentInfo>> robotComments() throws RestApiException;
385 :
386 : /**
387 : * Get all draft comments for the current user on a change.
388 : *
389 : * @return drafts in a map keyed by path; comments have the {@code revision} field set to indicate
390 : * their patch set.
391 : */
392 : default Map<String, List<CommentInfo>> drafts() throws RestApiException {
393 6 : return draftsRequest().get();
394 : }
395 :
396 : /**
397 : * Get all draft comments for the current user on a change as a list.
398 : *
399 : * @return drafts as a list; comments have the {@code revision} field set to indicate their patch
400 : * set.
401 : */
402 : default List<CommentInfo> draftsAsList() throws RestApiException {
403 2 : return draftsRequest().getAsList();
404 : }
405 :
406 : /**
407 : * Get a {@link DraftsRequest} entity that can be used to retrieve draft comments.
408 : *
409 : * @return A {@link DraftsRequest} entity that can be used to retrieve the draft comments using
410 : * {@link DraftsRequest#get()} or {@link DraftsRequest#getAsList()}.
411 : */
412 : DraftsRequest draftsRequest() throws RestApiException;
413 :
414 : ChangeInfo check() throws RestApiException;
415 :
416 : ChangeInfo check(FixInput fix) throws RestApiException;
417 :
418 1 : abstract class CheckSubmitRequirementRequest {
419 : /** Submit requirement name. */
420 : private String name;
421 :
422 : /**
423 : * A change ID for a change in {@link com.google.gerrit.entities.RefNames#REFS_CONFIG} branch
424 : * from which the submit-requirement will be loaded.
425 : */
426 : private String refsConfigChangeId;
427 :
428 : public abstract SubmitRequirementResultInfo get() throws RestApiException;
429 :
430 : public CheckSubmitRequirementRequest srName(String srName) {
431 1 : this.name = srName;
432 1 : return this;
433 : }
434 :
435 : public CheckSubmitRequirementRequest refsConfigChangeId(String changeId) {
436 1 : this.refsConfigChangeId = changeId;
437 1 : return this;
438 : }
439 :
440 : protected String srName() {
441 1 : return name;
442 : }
443 :
444 : protected String getRefsConfigChangeId() {
445 1 : return refsConfigChangeId;
446 : }
447 : }
448 :
449 : CheckSubmitRequirementRequest checkSubmitRequirementRequest() throws RestApiException;
450 :
451 : /** Returns the result of evaluating the {@link SubmitRequirementInput} input on the change. */
452 : SubmitRequirementResultInfo checkSubmitRequirement(SubmitRequirementInput input)
453 : throws RestApiException;
454 :
455 : void index() throws RestApiException;
456 :
457 : /** Check if this change is a pure revert of the change stored in revertOf. */
458 : PureRevertInfo pureRevert() throws RestApiException;
459 :
460 : /** Check if this change is a pure revert of claimedOriginal (SHA1 in 40 digit hex). */
461 : PureRevertInfo pureRevert(String claimedOriginal) throws RestApiException;
462 :
463 : /**
464 : * Get all messages of a change with detailed account info.
465 : *
466 : * @return a list of messages sorted by their creation time.
467 : */
468 : List<ChangeMessageInfo> messages() throws RestApiException;
469 :
470 : /**
471 : * Look up a change message of a change by its id.
472 : *
473 : * @param id the id of the change message. In NoteDb, this id is the {@code ObjectId} of a commit
474 : * on the change meta branch.
475 : * @return API for accessing a change message.
476 : * @throws RestApiException if the id is invalid.
477 : */
478 : ChangeMessageApi message(String id) throws RestApiException;
479 :
480 12 : abstract class CommentsRequest {
481 : private boolean enableContext;
482 : private int contextPadding;
483 :
484 : /**
485 : * Get all published comments on a change.
486 : *
487 : * @return comments in a map keyed by path; comments have the {@code revision} field set to
488 : * indicate their patch set.
489 : */
490 : public abstract Map<String, List<CommentInfo>> get() throws RestApiException;
491 :
492 : /**
493 : * Get all published comments on a change as a list.
494 : *
495 : * @return comments as a list; comments have the {@code revision} field set to indicate their
496 : * patch set.
497 : */
498 : public abstract List<CommentInfo> getAsList() throws RestApiException;
499 :
500 : public CommentsRequest withContext(boolean enableContext) {
501 1 : this.enableContext = enableContext;
502 1 : return this;
503 : }
504 :
505 : public CommentsRequest contextPadding(int contextPadding) {
506 1 : this.contextPadding = contextPadding;
507 1 : return this;
508 : }
509 :
510 : public CommentsRequest withContext() {
511 0 : this.enableContext = true;
512 0 : return this;
513 : }
514 :
515 : public boolean getContext() {
516 12 : return enableContext;
517 : }
518 :
519 : public int getContextPadding() {
520 12 : return contextPadding;
521 : }
522 : }
523 :
524 7 : abstract class DraftsRequest extends CommentsRequest {}
525 :
526 1 : abstract class SuggestedReviewersRequest {
527 : private String query;
528 : private int limit;
529 : private boolean excludeGroups;
530 1 : private ReviewerState reviewerState = ReviewerState.REVIEWER;
531 :
532 : public abstract List<SuggestedReviewerInfo> get() throws RestApiException;
533 :
534 : public SuggestedReviewersRequest withQuery(String query) {
535 1 : this.query = query;
536 1 : return this;
537 : }
538 :
539 : public SuggestedReviewersRequest withLimit(int limit) {
540 1 : this.limit = limit;
541 1 : return this;
542 : }
543 :
544 : public SuggestedReviewersRequest excludeGroups(boolean excludeGroups) {
545 1 : this.excludeGroups = excludeGroups;
546 1 : return this;
547 : }
548 :
549 : public SuggestedReviewersRequest forCc() {
550 1 : this.reviewerState = ReviewerState.CC;
551 1 : return this;
552 : }
553 :
554 : public String getQuery() {
555 1 : return query;
556 : }
557 :
558 : public int getLimit() {
559 1 : return limit;
560 : }
561 :
562 : public boolean getExcludeGroups() {
563 1 : return excludeGroups;
564 : }
565 :
566 : public ReviewerState getReviewerState() {
567 1 : return reviewerState;
568 : }
569 : }
570 :
571 : /**
572 : * A default implementation which allows source compatibility when adding new methods to the
573 : * interface.
574 : */
575 0 : class NotImplemented implements ChangeApi {
576 : @Override
577 : public String id() {
578 0 : throw new NotImplementedException();
579 : }
580 :
581 : @Override
582 : public ReviewerApi reviewer(String id) throws RestApiException {
583 0 : throw new NotImplementedException();
584 : }
585 :
586 : @Override
587 : public RevisionApi revision(String id) throws RestApiException {
588 0 : throw new NotImplementedException();
589 : }
590 :
591 : @Override
592 : public void abandon(AbandonInput in) throws RestApiException {
593 0 : throw new NotImplementedException();
594 : }
595 :
596 : @Override
597 : public void restore(RestoreInput in) throws RestApiException {
598 0 : throw new NotImplementedException();
599 : }
600 :
601 : @Override
602 : public void move(MoveInput in) throws RestApiException {
603 0 : throw new NotImplementedException();
604 : }
605 :
606 : @Override
607 : public void setPrivate(boolean value, @Nullable String message) throws RestApiException {
608 0 : throw new NotImplementedException();
609 : }
610 :
611 : @Override
612 : public void setWorkInProgress(String message) throws RestApiException {
613 0 : throw new NotImplementedException();
614 : }
615 :
616 : @Override
617 : public void setReadyForReview(String message) throws RestApiException {
618 0 : throw new NotImplementedException();
619 : }
620 :
621 : @Override
622 : public ChangeApi revert(RevertInput in) throws RestApiException {
623 0 : throw new NotImplementedException();
624 : }
625 :
626 : @Override
627 : public RevertSubmissionInfo revertSubmission(RevertInput in) throws RestApiException {
628 0 : throw new NotImplementedException();
629 : }
630 :
631 : @Override
632 : public void rebase(RebaseInput in) throws RestApiException {
633 0 : throw new NotImplementedException();
634 : }
635 :
636 : @Override
637 : public void delete() throws RestApiException {
638 0 : throw new NotImplementedException();
639 : }
640 :
641 : @Override
642 : public String topic() throws RestApiException {
643 0 : throw new NotImplementedException();
644 : }
645 :
646 : @Override
647 : public void topic(String topic) throws RestApiException {
648 0 : throw new NotImplementedException();
649 : }
650 :
651 : @Override
652 : public IncludedInInfo includedIn() throws RestApiException {
653 0 : throw new NotImplementedException();
654 : }
655 :
656 : @Override
657 : public ReviewerResult addReviewer(ReviewerInput in) throws RestApiException {
658 0 : throw new NotImplementedException();
659 : }
660 :
661 : @Override
662 : public SuggestedReviewersRequest suggestReviewers() throws RestApiException {
663 0 : throw new NotImplementedException();
664 : }
665 :
666 : @Override
667 : public SuggestedReviewersRequest suggestReviewers(String query) throws RestApiException {
668 0 : throw new NotImplementedException();
669 : }
670 :
671 : @Override
672 : public List<ReviewerInfo> reviewers() throws RestApiException {
673 0 : throw new NotImplementedException();
674 : }
675 :
676 : @Override
677 : public ChangeInfo get(
678 : EnumSet<ListChangesOption> options, ImmutableListMultimap<String, String> pluginOptions)
679 : throws RestApiException {
680 0 : throw new NotImplementedException();
681 : }
682 :
683 : @Override
684 : public ChangeInfoDifference metaDiff(
685 : @Nullable String oldMetaRevId,
686 : @Nullable String newMetaRevId,
687 : EnumSet<ListChangesOption> options,
688 : ImmutableListMultimap<String, String> pluginOptions)
689 : throws RestApiException {
690 0 : throw new NotImplementedException();
691 : }
692 :
693 : @Override
694 : public void setMessage(CommitMessageInput in) throws RestApiException {
695 0 : throw new NotImplementedException();
696 : }
697 :
698 : @Override
699 : public ChangeEditApi edit() throws RestApiException {
700 0 : throw new NotImplementedException();
701 : }
702 :
703 : @Override
704 : public void setHashtags(HashtagsInput input) throws RestApiException {
705 0 : throw new NotImplementedException();
706 : }
707 :
708 : @Override
709 : public Set<String> getHashtags() throws RestApiException {
710 0 : throw new NotImplementedException();
711 : }
712 :
713 : @Override
714 : public AttentionSetApi attention(String id) throws RestApiException {
715 0 : throw new NotImplementedException();
716 : }
717 :
718 : @Override
719 : public AccountInfo addToAttentionSet(AttentionSetInput input) throws RestApiException {
720 0 : throw new NotImplementedException();
721 : }
722 :
723 : @Override
724 : public AccountInfo setAssignee(AssigneeInput input) throws RestApiException {
725 0 : throw new NotImplementedException();
726 : }
727 :
728 : @Override
729 : public AccountInfo getAssignee() throws RestApiException {
730 0 : throw new NotImplementedException();
731 : }
732 :
733 : @Override
734 : public List<AccountInfo> getPastAssignees() throws RestApiException {
735 0 : throw new NotImplementedException();
736 : }
737 :
738 : @Override
739 : public AccountInfo deleteAssignee() throws RestApiException {
740 0 : throw new NotImplementedException();
741 : }
742 :
743 : @Override
744 : @Deprecated
745 : public Map<String, List<CommentInfo>> comments() throws RestApiException {
746 0 : throw new NotImplementedException();
747 : }
748 :
749 : @Override
750 : @Deprecated
751 : public List<CommentInfo> commentsAsList() throws RestApiException {
752 0 : throw new NotImplementedException();
753 : }
754 :
755 : @Override
756 : public CommentsRequest commentsRequest() throws RestApiException {
757 0 : throw new NotImplementedException();
758 : }
759 :
760 : @Override
761 : public Map<String, List<RobotCommentInfo>> robotComments() throws RestApiException {
762 0 : throw new NotImplementedException();
763 : }
764 :
765 : @Override
766 : public Map<String, List<CommentInfo>> drafts() throws RestApiException {
767 0 : throw new NotImplementedException();
768 : }
769 :
770 : @Override
771 : public List<CommentInfo> draftsAsList() throws RestApiException {
772 0 : throw new NotImplementedException();
773 : }
774 :
775 : @Override
776 : public DraftsRequest draftsRequest() throws RestApiException {
777 0 : throw new NotImplementedException();
778 : }
779 :
780 : @Override
781 : public ChangeInfo check() throws RestApiException {
782 0 : throw new NotImplementedException();
783 : }
784 :
785 : @Override
786 : public ChangeInfo check(FixInput fix) throws RestApiException {
787 0 : throw new NotImplementedException();
788 : }
789 :
790 : @Override
791 : public CheckSubmitRequirementRequest checkSubmitRequirementRequest() throws RestApiException {
792 0 : throw new NotImplementedException();
793 : }
794 :
795 : @Override
796 : public SubmitRequirementResultInfo checkSubmitRequirement(SubmitRequirementInput input)
797 : throws RestApiException {
798 0 : throw new NotImplementedException();
799 : }
800 :
801 : @Override
802 : public void index() throws RestApiException {
803 0 : throw new NotImplementedException();
804 : }
805 :
806 : @Override
807 : public List<ChangeInfo> submittedTogether() throws RestApiException {
808 0 : throw new NotImplementedException();
809 : }
810 :
811 : @Override
812 : public SubmittedTogetherInfo submittedTogether(EnumSet<SubmittedTogetherOption> options)
813 : throws RestApiException {
814 0 : throw new NotImplementedException();
815 : }
816 :
817 : @Override
818 : public SubmittedTogetherInfo submittedTogether(
819 : EnumSet<ListChangesOption> a, EnumSet<SubmittedTogetherOption> b) throws RestApiException {
820 0 : throw new NotImplementedException();
821 : }
822 :
823 : @Override
824 : public ChangeInfo createMergePatchSet(MergePatchSetInput in) throws RestApiException {
825 0 : throw new NotImplementedException();
826 : }
827 :
828 : @Override
829 : public ChangeInfo applyPatch(ApplyPatchPatchSetInput in) throws RestApiException {
830 0 : throw new NotImplementedException();
831 : }
832 :
833 : @Override
834 : public PureRevertInfo pureRevert() throws RestApiException {
835 0 : throw new NotImplementedException();
836 : }
837 :
838 : @Override
839 : public PureRevertInfo pureRevert(String claimedOriginal) throws RestApiException {
840 0 : throw new NotImplementedException();
841 : }
842 :
843 : @Override
844 : public List<ChangeMessageInfo> messages() throws RestApiException {
845 0 : throw new NotImplementedException();
846 : }
847 :
848 : @Override
849 : public ChangeMessageApi message(String id) throws RestApiException {
850 0 : throw new NotImplementedException();
851 : }
852 : }
853 : }
|