All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.util.scan.api.IScanner Maven / Gradle / Ivy

The newest version!
/**
 * Copyright 2006-2012 Bull S.A.S.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.ow2.util.scan.api;

import java.net.URL;
import java.util.List;
import java.util.Set;

import org.ow2.util.scan.api.configurator.ISessionConfigurator;

/**
 * ArchiveScanner.
 * @author Gael Lalire
 */
public interface IScanner {

    /**
     * @param url the class url
     * @param sessionConfigurator the configurator for this session
     * @throws ScanException if error occurs
     * @return the scan result
     */
    IScannerResult scanClass(URL url, ISessionConfigurator sessionConfigurator)
            throws ScanException;

    /**
     * @param initialClassNameSet initial set of classes to scan at the beginning
     * @param archiveClassLocator class locator for current archive to scan
     * @param externClassLocator class locator list for external libraries
     *        (accessibles classes which are not in archive)
     * @param archiveConfigurator a configurator (provide metadata creation
     *        method and list of annotation to analyze)
     * @throws ScanException if error occurs
     */
    void scan(final Set initialClassNameSet, final IClassesLocator archiveClassLocator,
            final List externalClassLocator,  ISessionConfigurator sessionConfigurator)
            throws ScanException;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy