com.st.p2012.mind.DefinitionTreeDocumentationGenerator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mindoc Show documentation
Show all versions of mindoc Show documentation
Document generator for MIND
The newest version!
/**
\file com/st/p2012/mind/DefinitionTreeDocumentationGenerator.java
\brief A class to generate the documentation pages for an every ADL files in a list of directories.
\n
This file is part of the Platform 2012 program,
a cooperation between STMicroelectronics and CEA.\n
Redistribution of this file to outside parties is
strictly prohibited without the written consent
of the module owner indicated below.\n
\par Module owner: [email protected]
\par Copyright (C) 2009 STMicroelectronics
\par Authors: [email protected]
\par Id: $Id$
\par Date: $Date$
\par Revision: $Rev$
*/
package com.st.p2012.mind;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.io.DirectoryWalker;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.objectweb.fractal.adl.ADLException;
public class DefinitionTreeDocumentationGenerator extends DirectoryWalker {
private final File sourceDirectories[];
public DefinitionTreeDocumentationGenerator(final File sourceDirectories[]) {
super(FileFilterUtils.trueFileFilter(),
FileFilterUtils.orFileFilter(FileFilterUtils.suffixFileFilter(".adl"),
FileFilterUtils.suffixFileFilter(".itf")),
-1);
this.sourceDirectories = sourceDirectories;
}
public void generateDocumentation(final File targetDirectory) throws IOException, ADLException, InterruptedException {
for (final File rootDirectory : sourceDirectories) {
final List definitions = new LinkedList();
walk(rootDirectory, definitions);
final DefinitionDocumentGenerator generator = new DefinitionDocumentGenerator(sourceDirectories, rootDirectory, targetDirectory);
for (final File definition : definitions) {
final String definitionName = HTMLDocumentationHelper.getDefinitionName(rootDirectory.getCanonicalPath(), definition.getCanonicalPath());
Launcher.logger.finer("Generating documentation for " + definitionName);
if(definition.getName().endsWith(".adl")) {
generator.generateADLDocumentation(definitionName);
} else if(definition.getName().endsWith(".itf")) {
generator.generateIDLDocumentation(definitionName);
}
}
}
}
@SuppressWarnings("unchecked")
@Override
protected void handleFile(final File file, final int depth, final Collection results)
throws IOException {
results.add(file);
}
}