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();
}
}