Skip to content

Commit

Permalink
feat(groovydoc): Support additional properties defined in Gradle 7.5
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmiray committed Mar 1, 2023
1 parent 461b1c3 commit 633c3ec
Showing 1 changed file with 46 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
*/
package org.kordamp.gradle.plugin.base.model.impl

import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
import org.gradle.api.resources.TextResource
import org.gradle.api.tasks.javadoc.Groovydoc
import org.gradle.util.GradleVersion
import org.kordamp.gradle.util.CollectionUtils

/**
Expand All @@ -38,11 +40,17 @@ class GroovydocOptions {
boolean noTimestamp
boolean noVersionStamp
boolean includePrivate
boolean includeAuthor
boolean includeMainForScripts
boolean processScripts
boolean use

private boolean noTimestampSet
private boolean noVersionStampSet
private boolean includePrivateSet
private boolean includeAuthorSet
private boolean includeMainForScriptsSet
private boolean processScriptsSet
private boolean useSet

boolean isNoTimestampSet() {
Expand All @@ -61,6 +69,18 @@ class GroovydocOptions {
return useSet
}

boolean isIncludeAuthorSet() {
return includeAuthorSet
}

boolean isIncludeMainForScriptsSet() {
return includeMainForScriptsSet
}

boolean isProcessScriptsSet() {
return processScriptsSet
}

void setUse(boolean use) {
this.use = use
useSet = true
Expand All @@ -81,6 +101,21 @@ class GroovydocOptions {
includePrivateSet = true
}

void setIncludeAuthor(boolean includeAuthor) {
this.includeAuthor = includeAuthor
includeAuthorSet = true
}

void setIncludeMainForScripts(boolean includeMainForScripts) {
this.includeMainForScripts = includeMainForScripts
includeMainForScriptsSet = true
}

void setProcessScripts(boolean processScripts) {
this.processScripts = processScripts
processScriptsSet = true
}

void link(String url, String... packages) {
links.add(new Groovydoc.Link(url, packages))
}
Expand Down Expand Up @@ -108,6 +143,9 @@ class GroovydocOptions {
o1.setNoTimestamp((boolean) (o1.noTimestampSet ? o1.noTimestamp : o2.noTimestamp))
o1.setNoVersionStamp((boolean) (o1.noVersionStampSet ? o1.noVersionStamp : o2.noVersionStamp))
o1.setIncludePrivate((boolean) (o1.includePrivateSet ? o1.includePrivate : o2.includePrivate))
o1.setIncludeAuthor((boolean) (o1.includeAuthorSet ? o1.includeAuthor : o2.includeAuthor))
o1.setIncludeMainForScripts((boolean) (o1.includeMainForScriptsSet ? o1.includeMainForScripts : o2.includeMainForScripts))
o1.setProcessScripts((boolean) (o1.processScriptsSet ? o1.processScripts : o2.processScripts))
o1.setUse((boolean) (o1.useSet ? o1.use : o2.use))
o1.setWindowTitle(o1.windowTitle ?: o2.windowTitle)
o1.setDocTitle(o1.docTitle ?: o2.docTitle)
Expand All @@ -117,16 +155,23 @@ class GroovydocOptions {
o1.links = CollectionUtils.merge(o1.links, o2?.links, false)
}

@CompileDynamic
void applyTo(Groovydoc groovydoc) {
groovydoc.setNoTimestamp(noTimestamp)
groovydoc.setNoVersionStamp(noVersionStamp)
groovydoc.setIncludePrivate(includePrivate)
groovydoc.setUse(use)
groovydoc.setWindowTitle(windowTitle)
groovydoc.setDocTitle(docTitle)
groovydoc.setHeader(header)
groovydoc.setFooter(footer)
groovydoc.setOverviewText(overviewText)
groovydoc.setLinks(links)

if (GradleVersion.current() >= GradleVersion.version('7.5')) {
groovydoc.getIncludeAuthor().set(includeAuthor)
groovydoc.getIncludeMainForScripts().set(includeMainForScripts)
groovydoc.getProcessScripts().set(processScripts)
}
groovydoc.setIncludePrivate(includePrivate)
}
}

0 comments on commit 633c3ec

Please sign in to comment.