Class CompositeURLStreamHandlerFactory

  • All Implemented Interfaces:
    java.net.URLStreamHandlerFactory

    public class CompositeURLStreamHandlerFactory
    extends java.lang.Object
    implements java.net.URLStreamHandlerFactory
    A composite URLStreamHandlerFactory that delegates the creation of URLStreamHandler instances to one or more underlying factories in a prioritized order.

    This class allows combining multiple URLStreamHandlerFactory implementations into a single factory, where each factory is given a chance to create a handler for a specific protocol. The delegation order can be controlled by providing factories that implement the Prioritized interface.

    Example Usage

    
     CompositeURLStreamHandlerFactory compositeFactory = new CompositeURLStreamHandlerFactory();
    
     // Add custom factories
     compositeFactory.addURLStreamHandlerFactory(new MyURLStreamHandlerFactory());
     compositeFactory.addURLStreamHandlerFactory(new AnotherURLStreamHandlerFactory());
    
     // Set as the default URL stream handler factory
     URL.setURLStreamHandlerFactory(compositeFactory);
     
    Since:
    1.0.0
    Author:
    Mercy
    • Constructor Detail

      • CompositeURLStreamHandlerFactory

        public CompositeURLStreamHandlerFactory()
      • CompositeURLStreamHandlerFactory

        public CompositeURLStreamHandlerFactory​(java.util.Collection<java.net.URLStreamHandlerFactory> factories)
      • CompositeURLStreamHandlerFactory

        public CompositeURLStreamHandlerFactory​(java.lang.Iterable<java.net.URLStreamHandlerFactory> factories)
    • Method Detail

      • createURLStreamHandler

        public final java.net.URLStreamHandler createURLStreamHandler​(java.lang.String protocol)
        Specified by:
        createURLStreamHandler in interface java.net.URLStreamHandlerFactory
      • addURLStreamHandlerFactory

        public CompositeURLStreamHandlerFactory addURLStreamHandlerFactory​(java.net.URLStreamHandlerFactory factory)
        Add URLStreamHandlerFactory
        Parameters:
        factory - URLStreamHandlerFactory
        Returns:
      • getFactories

        protected java.util.List<java.net.URLStreamHandlerFactory> getFactories()
        Get the URLStreamHandlerFactory delegates;
        Returns:
        non-null
      • getComparator

        protected java.util.Comparator<? super java.net.URLStreamHandlerFactory> getComparator()
        The Comparator to sort URLStreamHandlerFactories
        Returns:
        Prioritized.COMPARATOR as default
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object