1. /*
  2. * @(#)RAFImageInputStreamSpi.java 1.7 03/12/19
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.imageio.spi;
  8. import java.io.File;
  9. import java.io.RandomAccessFile;
  10. import java.util.Locale;
  11. import javax.imageio.spi.ImageInputStreamSpi;
  12. import javax.imageio.stream.ImageInputStream;
  13. import javax.imageio.stream.FileImageInputStream;
  14. public class RAFImageInputStreamSpi extends ImageInputStreamSpi {
  15. private static final String vendorName = "Sun Microsystems, Inc.";
  16. private static final String version = "1.0";
  17. private static final Class inputClass = RandomAccessFile.class;
  18. public RAFImageInputStreamSpi() {
  19. super(vendorName, version, inputClass);
  20. }
  21. public String getDescription(Locale locale) {
  22. return "Service provider that instantiates a FileImageInputStream from a RandomAccessFile";
  23. }
  24. public ImageInputStream createInputStreamInstance(Object input,
  25. boolean useCache,
  26. File cacheDir) {
  27. if (input instanceof RandomAccessFile) {
  28. try {
  29. return new FileImageInputStream((RandomAccessFile)input);
  30. } catch (Exception e) {
  31. return null;
  32. }
  33. } else {
  34. throw new IllegalArgumentException
  35. ("input not a RandomAccessFile!");
  36. }
  37. }
  38. }