public void execute()

in tools/maven-plugin/src/main/java/org/apache/batchee/tools/maven/doc/ComponentDocumentationGenerator.java [70:126]


    public void execute() {
        if (classes == null || !classes.isDirectory()) {
            warn((classes != null ? classes.getAbsolutePath() : "null") + " is not a directory, skipping");
            return;
        }

        // instantiate the formatter now to avoid to scan for nothing if we can't instantiate it
        final Formatter formatterInstance = createFormatter();

        // find meta
        final Map<String, ClassDoc> configByComponent = new TreeMap<String, ClassDoc>();
        try {
            scan(configByComponent, classes);
        } catch (final IOException e) {
            throw new IllegalStateException(e.getMessage(), e);
        }

        if (configByComponent.isEmpty()) {
            warn("Nothing found, maybe adjust <classes>, skipping.");
            return;
        }

        handleParents(configByComponent);

        // format what we found
        if (!output.getParentFile().isDirectory() && !output.getParentFile().mkdirs()) {
            throw new IllegalStateException("Can't create " + output.getAbsolutePath());
        }
        FileWriter writer = null;
        try {
            writer = new FileWriter(output);
            formatterInstance.begin(writer);
            for (final Map.Entry<String, ClassDoc> component : configByComponent.entrySet()) {
                final ClassDoc value = component.getValue();
                if (!value.leaf) {
                    continue;
                }

                formatterInstance.beginClass(writer, value.name, value.doc);
                for (final FieldDoc doc : value.configuration) {
                    formatterInstance.add(writer, doc);
                }
                formatterInstance.endClass(writer);
            }
            formatterInstance.end(writer);
        } catch (final IOException e) {
            throw new IllegalStateException(e.getMessage(), e);
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (final IOException e) {
                    // no-op
                }
            }
        }
    }