ciao!
ho una classe che usa Apache Tika per fare il parsing dei file in base al mime type.
codice:
public class ParseFile {
private File file;
private BodyContentHandler handler;
private Metadata metadata;
private ParseContext context;
private FileInputStream inputstream;
private StringBuilder sb;
private String[] metadataNames;
private String content;
public ParseFile(File file) throws FileNotFoundException {
this.file = file;
handler = new BodyContentHandler();
metadata = new Metadata();
context = new ParseContext();
inputstream = new FileInputStream(file);
sb = new StringBuilder();
}
public void genericParser() throws IOException, SAXException, TikaException {
Parser parser = new AutoDetectParser();
parser.parse(inputstream, handler, metadata, context);
setContent(handler.toString());
setMetadataNames(metadata.names());
}
public void jpegParser() throws IOException, SAXException, TikaException {
JpegParser parser = new JpegParser();
parser.parse(inputstream, handler, metadata, context);
setMetadataNames(metadata.names());
}
public void ooXmlParser() throws IOException, SAXException, TikaException {
OOXMLParser parser = new OOXMLParser();
parser.parse(inputstream, handler, metadata, context);
setContent(handler.toString());
setMetadataNames(metadata.names());
}
..................................................................
}
come vedete ho creato un metodo per ogni tipo di parsing che mi interessa.
da una JTable prendo il file e lo passo al costruttore.
però, in sostanza, sono tutti metodi praticamente uguali, e mi sembra un pò una ripetizione.
cambia solo il parser da utilizzare.
come potrei migliorare questa classe secondo voi?