All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.plantuml.filesdiagram.FilesDiagram Maven / Gradle / Ivy

There is a newer version: 1.2024.8
Show newest version
// THIS FILE HAS BEEN GENERATED BY A PREPROCESSOR.
package net.sourceforge.plantuml.filesdiagram;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import net.sourceforge.plantuml.FileFormatOption;
import net.sourceforge.plantuml.UmlDiagram;
import net.sourceforge.plantuml.core.DiagramDescription;
import net.sourceforge.plantuml.core.ImageData;
import net.sourceforge.plantuml.core.UmlSource;
import net.sourceforge.plantuml.klimt.shape.TextBlock;
import net.sourceforge.plantuml.skin.UmlDiagramType;
import net.sourceforge.plantuml.text.StringLocated;

public class FilesDiagram extends UmlDiagram {

	private final FilesListing list;

	public FilesDiagram(UmlSource source) {
		super(source, UmlDiagramType.FILES, null);
		this.list = new FilesListing(getSkinParam());

		final Iterator it = source.iterator2();
		it.next();
		while (it.hasNext()) {
			final String line = it.next().getString();
			if (line.startsWith("/"))
				this.list.addRawEntry(line.substring(1));
			else if (line.startsWith(""))
				this.list.addNote(getNote(it));
		}

	}

	private List getNote(Iterator it) {
		final List result = new ArrayList();
		while (it.hasNext()) {
			final String line = it.next().getString();
			if (line.startsWith(""))
				return result;
			result.add(line);
		}
		return Collections.unmodifiableList(result);
	}

	public DiagramDescription getDescription() {
		return new DiagramDescription("(Files)");
	}

	@Override
	protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
			throws IOException {

		return createImageBuilder(fileFormatOption).drawable(getTextBlock()).write(os);
	}

	@Override
	protected TextBlock getTextBlock() {
		return list;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy