/*
 * Copyright 2016-2021 Talsma ICT
 *
 * 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 nl.talsmasoftware.umldoclet.configuration;

import java.util.Collection;
import java.util.Optional;

/**
 * Configuration relating to the images that are generated.
 *
 * @author Sjoerd Talsma
 */
public interface ImageConfig {
    /**
     * Supported image formats.
     */
    enum Format {
        SVG, PNG, EPS
    }

    /**
     * @return The image directory for the UML diagrams, if explicitly specified.
     */
    Optional<String> directory();

    /**
     * By default {@code SVG} images will be generated because they are a lot smaller than for instance {@code PNG}
     * images and they can include links to Javadoc {@code HTML} pages.
     * <p>
     * Providing one or more {@code "-umlImageFormat"} option values overrides this setting.
     *
     * @return The image formats that are generated (by default only {@code SVG}).
     */
    Collection<Format> formats();

}

@@ -909,17 +909,1296 @@
     
-SVG, PNG,
+/**%0A         * Value to indicate UML diagrams must be rendered as SVG%0A         * (%3Ca href=%22https://wikipedia.org/wiki/Scalable_Vector_Graphics%22%3Escalable vector graphics%3C/a%3E) images.%0A         * %3Cp%3E%0A         * This format is the default and recommended format, as they have the following advantages over the other%0A         * formats:%0A         * %3Cul%3E%0A         * %3Cli%3ESize. UML diagrams can be represented as compact SVG images.%0A         * %3Cli%3EScalability. SVG images can be scaled almost without limits.%0A         * %3Cli%3ELinks. SVG images allow us to embed links in the UML diagrams.%0A         * %3C/ul%3E%0A         */%0A        SVG,%0A%0A        /**%0A         * Value to indicate UML diagrams must be rendered as PNG%0A         * (%3Ca href=%22https://wikipedia.org/wiki/Portable_Network_Graphics%22%3EPortable Network Graphics%3C/a%3E) images.%0A         * %3Cp%3E%0A         * This is a raster-graphics format that supports lossless compression. This format is usually only used if%0A         * %7B@link #SVG%7D is not an option.%0A         */%0A        PNG,%0A%0A        /**%0A         * Value to indicate UML diagrams must be rendered as EPS%0A         * (%3Ca href=%22https://wikipedia.org/wiki/Encapsulated_PostScript%22%3EEncapsulated Postscript%3C/a%3E) images.%0A         * %3Cp%3E%0A         * This format is most appropriate for print.%0A         */%0A       
  EPS

Add JavaDoc to ImageConfig.Format.