Added AdapterUtils.adaptToAnyResource() to avoid programming mistakes
commit8ffac6fff5ea562d197b87ffee9dac97ba774041
authorAndrey Loskutov <loskutov@gmx.de>
Thu, 28 Jul 2016 08:55:25 +0000 (28 10:55 +0200)
committerAndrey Loskutov <loskutov@gmx.de>
Thu, 28 Jul 2016 08:55:25 +0000 (28 10:55 +0200)
tree575755cf4492185452de1038146819d8c0d716b5
parent247d7a060319031fca49536bb5aaa796ad5dc345
Added AdapterUtils.adaptToAnyResource() to avoid programming mistakes

Unfortunately getAdapter(IResource.class) does not, as one would naively
expect, return an IProject objects if the implementation simply provides
only dedicated adapters for IFile or IProject or IContainer types. In
many cases on the caller side we don't care and just want *anything*
extending IResource, independently which adapter is implemented on the
object side.

Proposed AdapterUtils.adaptToAnyResource(Object) checks if the object is
an instance of or has adapter to IResource, IFile, IProject or
IContainer, so that there is no need anymore to write this boilerplate
code. The related client code is adopted where needed.

Change-Id: Ic9ae4eae707640665dcac1ce5dab2d24ab320e38
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
12 files changed:
org.eclipse.egit.core/src/org/eclipse/egit/core/AdapterUtils.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWithMenu.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommandHandler.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/rebase/RebaseInteractiveView.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/reflog/ReflogView.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/SelectionPropertyTester.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/SelectionUtils.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitSynchronizeWizard.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/variables/GitVariableResolver.java