/*
* (c) Rob Gordon 2005
*/
package org.oddjob.doclet;
import java.util.ArrayList;
import java.util.List;
import org.oddjob.arooa.beandocs.BeanDoc;
import org.oddjob.arooa.beandocs.WriteableBeanDoc;
import com.sun.javadoc.ClassDoc;
/**
* This class archives away the page data so it may
* be retrieved later.
*
* @author Rob Gordon.
*/
public class Archiver {
private final JobsAndTypes jats;
public Archiver(JobsAndTypes jats) {
this.jats = jats;
}
public void archive(ClassDoc classDoc) {
String fqcn = Processor.fqcnFor(classDoc);
WriteableBeanDoc beanDoc = jats.docFor(fqcn);
if (beanDoc == null) {
return;
}
Processor processor = new Processor(jats, classDoc);
processor.process();
}
/**
* Jobs in index order.
*
* @return An array of PageData objects.
*/
public IndexLine[] getJobData() {
List<IndexLine> lines = new ArrayList<IndexLine>();
for (String name : jats.jobs()) {
BeanDoc beanDoc = jats.docForJob(name);
lines.add(new IndexLine(beanDoc.getClassName(), name,
beanDoc.getFirstSentence()));
}
return lines.toArray(new IndexLine[lines.size()]);
}
/**
* Types in index order.
*
* @return An array of PageData objects
*/
public IndexLine[] getTypeData() {
List<IndexLine> lines = new ArrayList<IndexLine>();
for (String name : jats.types()) {
BeanDoc beanDoc = jats.docForType(name);
lines.add(new IndexLine(beanDoc.getClassName(), name,
beanDoc.getFirstSentence()));
}
return lines.toArray(new IndexLine[lines.size()]);
}
public Iterable<? extends BeanDoc> getAll() {
return jats.all();
}
}