package org.meaningfulweb.detector; import java.io.IOException; import java.io.InputStream; import org.apache.tika.detect.DefaultDetector; import org.apache.tika.detect.Detector; import org.apache.tika.detect.TypeDetector; import org.apache.tika.metadata.Metadata; import org.apache.tika.mime.MediaType; public class DetectorFactory { private static DetectorFactory instance = new DetectorFactory(); private DetectorFactory(){ } public static DetectorFactory getInstance(){ return instance; } public Detector buildDetector(){ return new Detector(){ private Detector typeDetector = new TypeDetector(); private Detector defaultDetector = new DefaultDetector(); @Override public MediaType detect(InputStream input, Metadata metadata) throws IOException { MediaType type = typeDetector.detect(input, metadata); if (MediaType.OCTET_STREAM == type){ type = defaultDetector.detect(input, metadata); } return type; } }; } public static void main(String[] args) throws Exception{ DetectorFactory detector = DetectorFactory.getInstance(); } }