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.MetaClassLoader;
017    import org.apache.commons.classscan.model.MetaClass;
018    import org.apache.commons.classscan.model.MetaType;
019    
020    /**
021     * Metadata about a ClassLoader. This includes the jars that a ClassLoader loads
022     * from and the Classes that are potentially available.
023     */
024    public interface SpiMetaClassLoader extends MetaClassLoader {
025        
026        /**
027         * Get metadata representing a type from its byte code signature
028         * 
029         * @param fieldDescriptor
030         *            The field descriptor as defined in section 4.3.2 of The Java
031         *            Virtual Machine Specification
032         * @return The type metadata
033         */
034        MetaType resolveTypeForDescriptor(String fieldDescriptor);
035    
036            MetaClass resolveMetaClass(String className);
037    }