Class ClassFileLocator.Compound

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ClassFileLocator
    Enclosing interface:
    ClassFileLocator

    @Enhance
    public static class ClassFileLocator.Compound
    extends java.lang.Object
    implements ClassFileLocator, java.io.Closeable
    A compound ClassFileLocator that chains several locators. Any class file locator is queried in the supplied order until one locator is able to provide an input stream of the class file.
    • Field Detail

      • classFileLocators

        private final java.util.List<ClassFileLocator> classFileLocators
        The ClassFileLocators which are represented by this compound class file locator in the order of their application.
    • Constructor Detail

      • Compound

        public Compound​(ClassFileLocator... classFileLocator)
        Creates a new compound class file locator.
        Parameters:
        classFileLocator - The ClassFileLocators to be represented by this compound class file locator in the order of their application.
      • Compound

        public Compound​(java.util.List<? extends ClassFileLocator> classFileLocators)
        Creates a new compound class file locator.
        Parameters:
        classFileLocators - The ClassFileLocators to be represented by this compound class file locator in the order of their application.
    • Method Detail

      • locate

        public ClassFileLocator.Resolution locate​(java.lang.String name)
                                           throws java.io.IOException
        Locates the class file for a given type and returns the binary data of the class file.
        Specified by:
        locate in interface ClassFileLocator
        Parameters:
        name - The name of the type to locate a class file representation for.
        Returns:
        Any binary representation of the type which might be illegal.
        Throws:
        java.io.IOException - If reading a class file causes an error.
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException