diff options
Diffstat (limited to 'platform/dvcs-api/src/com/intellij/dvcs/push/OutgoingCommitsProvider.java')
-rw-r--r-- | platform/dvcs-api/src/com/intellij/dvcs/push/OutgoingCommitsProvider.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/platform/dvcs-api/src/com/intellij/dvcs/push/OutgoingCommitsProvider.java b/platform/dvcs-api/src/com/intellij/dvcs/push/OutgoingCommitsProvider.java index 4532146f9b4a..33053ffe4ecf 100644 --- a/platform/dvcs-api/src/com/intellij/dvcs/push/OutgoingCommitsProvider.java +++ b/platform/dvcs-api/src/com/intellij/dvcs/push/OutgoingCommitsProvider.java @@ -21,15 +21,20 @@ import org.jetbrains.annotations.NotNull; /** * Provider for outgoing commits */ -public abstract class OutgoingCommitsProvider { +public abstract class OutgoingCommitsProvider<Repo extends Repository, Source extends PushSource, Target extends PushTarget> { /** - * Collect outgoing commits or errors for selected repo for specified {@link PushSpec} and store to {@link OutgoingResult} + * Collect either outgoing commits or errors for the given repository and {@link PushSpec}. * - * @param initial true for first commits loading, which identify that all inside actions should be silent - * and do not ask user about smth, a.e authorization request + * @param initial true for the first attempt to load commits, which happens when the push dialog just appears on the screen. + * If later the user modifies the push target, commits are reloaded, and {@code initial} is false. + * <br/> + * Implementations should make sure that if {@code initial} is true, no user interaction is allowed + * (to avoid suddenly throwing dialogs into user's face). + * E.g. if authentication is needed to collect outgoing changes, then the method should silently show the corresponding + * request in the error field of the OutgoingResult. */ @NotNull - public abstract OutgoingResult getOutgoingCommits(@NotNull Repository repository, - @NotNull PushSpec pushSpec, boolean initial); + public abstract OutgoingResult getOutgoingCommits(@NotNull Repo repository, @NotNull PushSpec<Source, Target> pushSpec, boolean initial); + } |