// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea
// Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com
// Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology
// Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/

package graphtea.platform.extension;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.RetentionPolicy.RUNTIME;


/**
 * Provides some information about the extension
 *
 * @author azin azadi
 * @see Extension
 */

@Retention(RUNTIME)
@Target({ElementType.TYPE})
public @interface ExtensionExternalData {
    /**
     * a URL which locates a help for extension, the help will
     * provide more information about what extension does and
     * how it can be used, it also can contain some theoreticall
     * aspects of extension, how it is implemented and so on.
     */
    String helpURL();

    /**
     * a URL which locates the source code for the extension, it
     * will be then accessible by the user.
     * <p/>
     * this field will be set on extension load automatically if it hasn't been setted,
     * on this case it will be locate the file of extension.
     * automatically setting the sourceCodeURL will be done only when the extension source code
     * is not a .class file.
     *
     * @see ExtensionLoader
     */
    String sourceCodeURL();
}
