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.MetaClassPathElement;
017    import org.apache.commons.classscan.model.MetaClass;
018    
019    /**
020     * Information about a code location. A code location may be a file folder, or a
021     * jar, or other packaged location
022     */
023    public interface SpiMetaClassPathElement extends MetaClassPathElement, HasResolve {
024    
025            /**
026             * Find and resolve a MetaClass.  Resolving a MetaClass changes String classnames and types
027             * into references to the MetaClasses.
028             * 
029             * @param classLoader The metadata locus for a ClassLoader
030             * @param className The canonical name of the class to resolve
031             * @return The completely resolved MetaClass; or null, if resolution was unsuccessful.
032             */
033            MetaClass resolveMetaClass(SpiMetaClassLoader classLoader, String className);
034    }