package io.lumify.subrip;
import io.lumify.core.ingest.FileImportSupportingFileHandler;
import io.lumify.core.model.properties.types.StreamingLumifyProperty;
import org.securegraph.VertexBuilder;
import org.securegraph.Visibility;
import org.securegraph.property.StreamingPropertyValue;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class SubRipTranscriptFileImportSupportingFileHandler extends FileImportSupportingFileHandler {
public static final String SUBRIP_CC_FILE_NAME_SUFFIX = ".srt";
public static final StreamingLumifyProperty SUBRIP_CC = new StreamingLumifyProperty("http://lumify.io#subrip");
@Override
public boolean isSupportingFile(File f) {
return f.getName().endsWith(SUBRIP_CC_FILE_NAME_SUFFIX);
}
@Override
public AddSupportingFilesResult addSupportingFiles(VertexBuilder vertexBuilder, File f, Visibility visibility) throws Exception {
File mappingJsonFile = new File(f.getParentFile(), f.getName() + SUBRIP_CC_FILE_NAME_SUFFIX);
if (mappingJsonFile.exists()) {
final FileInputStream subripIn = new FileInputStream(mappingJsonFile);
StreamingPropertyValue subripValue = new StreamingPropertyValue(subripIn, byte[].class);
subripValue.searchIndex(false);
SUBRIP_CC.setProperty(vertexBuilder, subripValue, visibility);
return new AddSupportingFilesResult() {
@Override
public void close() throws IOException {
subripIn.close();
}
};
}
return null;
}
}