/*
* Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package org.jetbrains.dokka.maven
import org.apache.maven.plugins.annotations.Parameter
import org.jetbrains.dokka.DokkaConfiguration
import org.jetbrains.dokka.DokkaDefaults
/**
* Configuration block that allows setting some options for specific packages
* matched by [matchingRegex].
*
* Example:
*
* ```xml
*
*
*
* .*api.*
* false
* false
* false
*
* PUBLIC
* PROTECTED
*
*
*
*
* ```
*/
public class PackageOptions : DokkaConfiguration.PackageOptions {
/**
* Regular expression that is used to match the package.
*
* If multiple packages match the same `matchingRegex`, the longest `matchingRegex` will be used.
*
* Default is any string: `.*`.
*/
@Parameter
override var matchingRegex: String = ".*"
/**
* Whether this package should be skipped when generating documentation.
*
* Default is `false`.
*/
@Parameter
override var suppress: Boolean = DokkaDefaults.suppress
/**
* List of visibility modifiers that should be documented.
*
* This can be used if you want to document protected/internal/private declarations within a
* specific package, as well as if you want to exclude public declarations and only document internal API.
*
* Default is [DokkaConfiguration.Visibility.PUBLIC].
*/
@Parameter(property = "visibility")
override var documentedVisibilities: Set = DokkaDefaults.documentedVisibilities
/**
* Whether to document declarations annotated with [Deprecated].
*
* Can be set on project level with [AbstractDokkaMojo.skipDeprecated].
*
* Default is `false`.
*/
@Parameter
override var skipDeprecated: Boolean = DokkaDefaults.skipDeprecated
/**
* Whether to emit warnings about visible undocumented declarations, that is declarations from
* this package and without KDocs, after they have been filtered by [documentedVisibilities].
*
* This setting works well with [AbstractDokkaMojo.failOnWarning].
*
* Default is `false`.
*/
@Parameter
override var reportUndocumented: Boolean = DokkaDefaults.reportUndocumented
@Parameter
@Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities")
override var includeNonPublic: Boolean = DokkaDefaults.includeNonPublic
}