001/*******************************************************************************
002 * This software is provided as a supplement to the authors' textbooks on digital
003 * image processing published by Springer-Verlag in various languages and editions.
004 * Permission to use and distribute this software is granted under the BSD 2-Clause
005 * "Simplified" License (see http://opensource.org/licenses/BSD-2-Clause).
006 * Copyright (c) 2006-2023 Wilhelm Burger, Mark J. Burge. All rights reserved.
007 * Visit https://imagingbook.com for additional details.
008 ******************************************************************************/
009package imagingbook.core.jdoc;
010
011import java.lang.annotation.Retention;
012import java.lang.annotation.Target;
013
014import static java.lang.annotation.ElementType.PACKAGE;
015import static java.lang.annotation.RetentionPolicy.RUNTIME;
016
017/**
018 * <p>
019 * This package-level annotation is used to specify a URL for automatic retrieval of JavaDoc information. The the
020 * supplied URL-string must include all address parts including the module part and must end with '/'.
021 * </p>
022 * <p>
023 * For example, for class '{@literal Compute_Histogram}' in package '{@literal Ch02_Histograms_Statistics}' and module
024 * '{@literal imagingbook_plugins_book}' the associated JavaDoc page is
025 * </p>
026 * <pre>
027 * https://imagingbook.github.io/imagingbook-public/javadoc/imagingbook_plugins_book/Ch02_Histograms_Statistics/Compute_Histogram.html</pre>
028 * i.e., in the format
029 * <pre>
030 *     https://BASEURL/MODULENAME/PACKAGENAME/CLASSNAME.htlm</pre>
031 * In this case, the URL-string to be supplied is
032 * <pre>
033 *     https://BASEURL/MODULENAME/</pre>
034 * that is,
035 * <pre>
036 *     https://imagingbook.github.io/imagingbook-public/javadoc/imagingbook_plugins_book/</pre>
037 * <p>
038 * The remaining parts (PACKAGENAME, CLASSNAME) are filled in automatically.
039 * </p>
040 * <p>
041 * This information is used by {@link JavaDocHelp#getJavaDocUrl(Class)}. Future version may include annotations at the
042 * MODULE and TYPE (class) level. Note that currently ImageJ does not fully support modules and cannot read the names
043 * and annotations of external modules.
044 * </p>
045 *
046 * @see JavaDocHelp
047 */
048@Retention(RUNTIME)
049@Target({PACKAGE})
050public @interface JavaDocBaseUrl {
051    public String value();
052}