package jetbrains.mps.vcs.core.mergedriver; /*Generated by MPS */ import jetbrains.mps.extapi.persistence.DataSourceBase; import org.jetbrains.mps.openapi.persistence.StreamDataSource; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; import jetbrains.mps.util.ReadUtil; import jetbrains.mps.util.FileUtil; import java.io.ByteArrayInputStream; import java.io.OutputStream; import java.io.FileOutputStream; import org.jetbrains.annotations.NotNull; public class FileContent extends DataSourceBase implements StreamDataSource { private final File myFile; private byte[] data; public FileContent(File file) throws IOException { myFile = file; InputStream stream = new FileInputStream(file); try { this.data = ReadUtil.read(stream); } finally { FileUtil.closeFileSafe(stream); } } public File getFile() { return myFile; } public byte[] getData() { return data; } @Override public InputStream openInputStream() { return new ByteArrayInputStream(data); } @Override public OutputStream openOutputStream() throws IOException { return new FileOutputStream(myFile); } @Override public boolean isReadOnly() { return false; } @NotNull @Override public String getLocation() { return myFile.getName(); } }