package hudson.plugins.doclinks;
import hudson.Util;
import hudson.maven.MavenModule;
import hudson.model.AbstractItem;
import hudson.plugins.doclinks.m2.DocLinksMavenReporter;
import java.io.File;
import java.io.Serializable;
import org.kohsuke.stapler.DataBoundConstructor;
/**
* Document Model.
* @author Seiji Sogabe
*/
public class Document implements Serializable {
private static final long serialVersionUID = 1L;
private final String title;
private final String description;
private final String directory;
private final String file;
private String id;
@DataBoundConstructor
public Document(final String title, final String description, final String directory, final String file,
final String id) {
this.title = Util.fixEmptyAndTrim(title);
this.description = Util.fixEmptyAndTrim(description);
this.directory = Util.fixEmptyAndTrim(directory);
this.file = Util.fixEmptyAndTrim(file);
this.id = Util.fixEmptyAndTrim(id);
}
public String getTitle() {
return title;
}
public String getDirectory() {
return directory;
}
public String getFile() {
return file;
}
public String getDescription() {
return description;
}
public String getId() {
return id;
}
public void setId(final String id) {
this.id = id;
}
public boolean hasResources(final AbstractItem project) {
final File docLinksDir = DocLinksPublisher.getDocLinksDir(project);
return isDocumentExits(docLinksDir);
}
public boolean hasResources(final MavenModule module) {
final File docLinksDir = DocLinksMavenReporter.getDocLinksDir(module);
return isDocumentExits(docLinksDir);
}
private boolean isDocumentExits(final File docLinksDir) {
final File docDir = new File(docLinksDir, String.valueOf(getId()));
if (file == null) {
return docDir.exists();
}
final File indexFile = new File(docDir, file);
return indexFile.exists();
}
}