Details
-
Improvement
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
None
Description
This has been annoying for me - I've got a thing that only wants to allow you to choose an SCMSource if that SCMSource has an SCMFileSystem.Builder implementation that's valid for it. SCMFileSystem#supports(SCMSource) (which calls Builder#supports(SCMSource) for each Builder extension) would be fine...except that I want to know which SCMSource implementations are valid in a configuration UI, meaning I don't have instances, just descriptors. So it'd be awfully handy to have Builder#supports(Class<? extends SCMSource>) or Builder#supports(SCMSourceDescriptor).
Attachments
Issue Links
- links to
Maybe Builder#maySupport(SCMSourceDescriptor) would be the way to go - while most implementations in the wild (see the extensions list here just implement Builder#supports(SCMSource) with a simple return source instanceof SomeSCMSourceImpl, GitSCMTelescope actually cares about how the instance is configured. So in that case, there's no way to know definitively whether an SCMSourceDescriptor's SCMSource would be supported without an actual instance of the SCMSource. But I think we can live with that here - calling the new method maySupport implies that it's theoretically possible to use this SCMSourceDescriptor's SCMSource, but it doesn't make any promises that any particular config will be valid...