001 // GraphLab Project: http://graphlab.sharif.edu 002 // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology 003 // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ 004 005 package graphlab.platform.extension; 006 007 import java.lang.annotation.ElementType; 008 import java.lang.annotation.Retention; 009 import static java.lang.annotation.RetentionPolicy.RUNTIME; 010 import java.lang.annotation.Target; 011 012 013 /** 014 * Provides some information about the extension 015 * 016 * @author azin azadi 017 * @see Extension 018 */ 019 020 @Retention(RUNTIME) 021 @Target({ElementType.TYPE}) 022 public @interface ExtensionExternalData { 023 /** 024 * a URL which locates a help for extension, the help will 025 * provide more information about what extension does and 026 * how it can be used, it also can contain some theoreticall 027 * aspects of extension, how it is implemented and so on. 028 */ 029 String helpURL(); 030 031 /** 032 * a URL which locates the source code for the extension, it 033 * will be then accessible by the user. 034 * <p/> 035 * this field will be setted on extension load automatically if it hasn't been setted, 036 * on this case it will be locate the file of extension. 037 * automatically setting the sourceCodeURL will be done only when the extension source code 038 * is not a .class file. 039 * 040 * @see ExtensionLoader 041 */ 042 String sourceCodeURL(); 043 }