//package org.emdev.common.archives.rar;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//
//import org.emdev.common.archives.ArchiveEntry;
//import org.emdev.common.cache.CacheManager;
//import org.emdev.utils.bytes.ByteString;
//
//public class RarArchiveEntry implements ArchiveEntry {
//
// final RarArchive archive;
// final ByteString path;
// final ByteString name;
//
// private File cached;
//
// RarArchiveEntry(final RarArchive archive, final ByteString path, final ByteString name) {
// this.archive = archive;
// this.path = path;
// this.name = name;
// }
//
// /**
// * {@inheritDoc}
// *
// * @see org.emdev.common.archives.ArchiveEntry#getName()
// */
// @Override
// public String getName() {
// return name.toString();
// }
//
// /**
// * {@inheritDoc}
// *
// * @see org.emdev.common.archives.ArchiveEntry#isDirectory()
// */
// @Override
// public boolean isDirectory() {
// return false;
// }
//
// /**
// * {@inheritDoc}
// *
// * @see org.emdev.common.archives.ArchiveEntry#open()
// */
// @Override
// public InputStream open() throws IOException {
// if (!archive.decodeInFile) {
// final Process process = startExtracting();
// return process.getInputStream();
// }
//
// if (cached == null || !cached.exists()) {
// final Process process = startExtracting();
// cached = CacheManager.createTempFile(process.getInputStream(), ".page");
// }
// FileInputStream tempin = new FileInputStream(cached);
// return tempin;
// }
//
// private Process startExtracting() throws IOException {
// final Process process = UnrarBridge.exec("p", "-inul", "-n@", archive.rarfile.getAbsolutePath());
// final OutputStream outputStream = process.getOutputStream();
// path.writeTo(outputStream);
// outputStream.close();
// return process;
// }
//}