mirror of
https://github.com/AppleCommander/bastools.git
synced 2024-06-02 04:41:27 +00:00
51 lines
1.9 KiB
Java
51 lines
1.9 KiB
Java
|
package io.github.applecommander.bastools.api.shapes;
|
||
|
|
||
|
import java.io.File;
|
||
|
import java.io.IOException;
|
||
|
import java.io.OutputStream;
|
||
|
import java.nio.file.Files;
|
||
|
import java.nio.file.Path;
|
||
|
import java.util.Objects;
|
||
|
|
||
|
import io.github.applecommander.bastools.api.shapes.exporters.TextShapeExporter;
|
||
|
|
||
|
public interface ShapeExporter {
|
||
|
/** Export a single shape to the OutputStream. */
|
||
|
public void export(Shape shape, OutputStream outputStream);
|
||
|
/** Export a single shape to the File. */
|
||
|
public default void export(Shape shape, File file) throws IOException {
|
||
|
Objects.requireNonNull(shape);
|
||
|
Objects.requireNonNull(file);
|
||
|
export(shape, file.toPath());
|
||
|
}
|
||
|
/** Export a single shape to the Path. */
|
||
|
public default void export(Shape shape, Path path) throws IOException {
|
||
|
Objects.requireNonNull(shape);
|
||
|
Objects.requireNonNull(path);
|
||
|
try (OutputStream outputStream = Files.newOutputStream(path)) {
|
||
|
export(shape, outputStream);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** Export the entire shape table to the OutputStream. */
|
||
|
public void export(ShapeTable shapeTable, OutputStream outputStream);
|
||
|
/** Export the entire shape table to the File. */
|
||
|
public default void export(ShapeTable shapeTable, File file) throws IOException {
|
||
|
Objects.requireNonNull(shapeTable);
|
||
|
Objects.requireNonNull(file);
|
||
|
export(shapeTable, file.toPath());
|
||
|
}
|
||
|
/** Export the entire shape table to the Path. */
|
||
|
public default void export(ShapeTable shapeTable, Path path) throws IOException {
|
||
|
Objects.requireNonNull(shapeTable);
|
||
|
Objects.requireNonNull(path);
|
||
|
try (OutputStream outputStream = Files.newOutputStream(path)) {
|
||
|
export(shapeTable, outputStream);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static TextShapeExporter.Builder text() {
|
||
|
return new TextShapeExporter.Builder();
|
||
|
}
|
||
|
}
|