File.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package ship.build.res;
- import hera.util.DangerousSupplier;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import lombok.Getter;
- import lombok.Setter;
- import ship.build.Resource;
- import ship.util.FileOpener;
- public class File extends Resource {
- @Getter
- @Setter
- protected DangerousSupplier<InputStream> contentProvider;
- public File(final Project project, final String path) {
- super(project, path);
- contentProvider = new FileOpener(getPath());
- }
- /**
- * Open file and return {@link BufferedReader}.
- *
- * @return buffered reader
- *
- * @throws IOException Fail to open
- */
- public BufferedReader open() throws IOException {
- try {
- return new BufferedReader(new InputStreamReader(contentProvider.get()));
- } catch (final IOException ex) {
- logger.error("Fail to open {}", getPath());
- throw ex;
- } catch (final Throwable ex) {
- throw new IllegalStateException(ex);
- }
- }
- }