refactor special handling (static override) of SUPPORTED_EXTENSIONS/MIME_TYPES

not used for genericImageParser
pull/18/head
reger 10 years ago
parent d54c5d310a
commit 78e8c6f3e5

@ -65,18 +65,17 @@ import com.drew.metadata.Metadata;
import com.drew.metadata.Tag; import com.drew.metadata.Tag;
import com.drew.metadata.exif.GpsDirectory; import com.drew.metadata.exif.GpsDirectory;
/**
* Parser for images, bmp and jpeg and all supported by the Java Image I/O API
* by default java ImageIO supports bmp, gif, jpg, jpeg, png, wbmp (tif if jai-imageio is in classpath/registered)
* http://download.java.net/media/jai-imageio/javadoc/1.1/overview-summary.html
*/
public class genericImageParser extends AbstractParser implements Parser { public class genericImageParser extends AbstractParser implements Parser {
/** public genericImageParser() {
* a list of mime types that are supported by this parser class super("Generic Image Parser");
* @see #getSupportedMimeTypes()
*/
public static final Set<String> SUPPORTED_MIME_TYPES = new HashSet<String>();
public static final Set<String> SUPPORTED_EXTENSIONS = new HashSet<String>();
static {
SUPPORTED_EXTENSIONS.add("bmp"); SUPPORTED_EXTENSIONS.add("bmp");
// by default java ImageIO supports bmp, gif, jpg, jpeg, png, wbmp (tif if jai-imageio is in classpath/registered)
// http://download.java.net/media/jai-imageio/javadoc/1.1/overview-summary.html
SUPPORTED_EXTENSIONS.add("jpe"); // not listed in ImageIO extension but sometimes uses for jpeg SUPPORTED_EXTENSIONS.add("jpe"); // not listed in ImageIO extension but sometimes uses for jpeg
SUPPORTED_EXTENSIONS.addAll(Arrays.asList(ImageIO.getReaderFileSuffixes())); SUPPORTED_EXTENSIONS.addAll(Arrays.asList(ImageIO.getReaderFileSuffixes()));
@ -85,10 +84,6 @@ public class genericImageParser extends AbstractParser implements Parser {
SUPPORTED_MIME_TYPES.addAll(Arrays.asList(ImageIO.getReaderMIMETypes())); SUPPORTED_MIME_TYPES.addAll(Arrays.asList(ImageIO.getReaderMIMETypes()));
} }
public genericImageParser() {
super("Generic Image Parser");
}
@Override @Override
public Document[] parse( public Document[] parse(
final AnchorURL location, final AnchorURL location,
@ -130,7 +125,8 @@ public class genericImageParser extends AbstractParser implements Parser {
try { try {
b = FileUtils.read(source); b = FileUtils.read(source);
// check jpeg file signature (magic number FF D8 FF) // check jpeg file signature (magic number FF D8 FF)
if ((b[0] != (byte) 0xFF) // cast to signed byte (-1) if (b.length < 3
|| (b[0] != (byte) 0xFF) // cast to signed byte (-1)
|| (b[1] != (byte) 0xD8) //cast to signed byte (-40) || (b[1] != (byte) 0xD8) //cast to signed byte (-40)
|| (b[2] != (byte) 0xFF)) { || (b[2] != (byte) 0xFF)) {
throw new Parser.Failure("File has no jpeg signature", location); throw new Parser.Failure("File has no jpeg signature", location);
@ -232,7 +228,7 @@ public class genericImageParser extends AbstractParser implements Parser {
return SUPPORTED_EXTENSIONS; return SUPPORTED_EXTENSIONS;
} }
public static ImageInfo parseJavaImage( private ImageInfo parseJavaImage(
final AnchorURL location, final AnchorURL location,
final InputStream sourceStream) throws Parser.Failure { final InputStream sourceStream) throws Parser.Failure {
BufferedImage image = null; BufferedImage image = null;
@ -247,7 +243,7 @@ public class genericImageParser extends AbstractParser implements Parser {
return parseJavaImage(location, image); return parseJavaImage(location, image);
} }
public static ImageInfo parseJavaImage( private ImageInfo parseJavaImage(
final AnchorURL location, final AnchorURL location,
final BufferedImage image) { final BufferedImage image) {
final ImageInfo ii = new ImageInfo(location); final ImageInfo ii = new ImageInfo(location);
@ -284,7 +280,7 @@ public class genericImageParser extends AbstractParser implements Parser {
return ii; return ii;
} }
public static class ImageInfo { private class ImageInfo {
public AnchorURL location; public AnchorURL location;
public BufferedImage image; public BufferedImage image;
public StringBuilder info; public StringBuilder info;

Loading…
Cancel
Save