001    /*
002     * Licensed under the Apache License, Version 2.0 (the "License");
003     * you may not use this file except in compliance with the License.
004     * You may obtain a copy of the License at
005     *
006     *      http://www.apache.org/licenses/LICENSE-2.0
007     *
008     * Unless required by applicable law or agreed to in writing, software
009     * distributed under the License is distributed on an "AS IS" BASIS,
010     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011     * See the License for the specific language governing permissions and
012     * limitations under the License.
013     */
014    package org.apache.commons.classscan.spi.model;
015    
016    import org.apache.commons.classscan.ClassPath;
017    
018    /**
019     * Information about a ClassPath.
020     *   A ClassPath specifies a list of ClassElement(s).
021     *   A ClassElement specifies a list of ClassFiles(s).
022     */
023    public interface SpiClassPath extends ClassPath {
024            /**
025             * Create a MetaClassLoader that will inspect the classes specified by this ClassPath
026             * @param registry
027             * @param classLoader
028             * @return metadata about ClassLoader
029             */
030            SpiMetaClassLoader createMetaClassLoader(SpiMetaRegistry registry, ClassLoader classLoader);
031    }