home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / imageio / ImageWriter.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  9.7 KB  |  471 lines

  1. package javax.imageio;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.Rectangle;
  5. import java.awt.image.BufferedImage;
  6. import java.awt.image.Raster;
  7. import java.awt.image.RenderedImage;
  8. import java.io.IOException;
  9. import java.security.AccessController;
  10. import java.util.List;
  11. import java.util.Locale;
  12. import java.util.MissingResourceException;
  13. import java.util.ResourceBundle;
  14. import javax.imageio.event.IIOWriteProgressListener;
  15. import javax.imageio.event.IIOWriteWarningListener;
  16. import javax.imageio.metadata.IIOMetadata;
  17. import javax.imageio.spi.ImageWriterSpi;
  18.  
  19. public abstract class ImageWriter implements ImageTranscoder {
  20.    protected ImageWriterSpi originatingProvider = null;
  21.    protected Object output = null;
  22.    protected Locale[] availableLocales = null;
  23.    protected Locale locale = null;
  24.    protected List<IIOWriteWarningListener> warningListeners = null;
  25.    protected List<Locale> warningLocales = null;
  26.    protected List<IIOWriteProgressListener> progressListeners = null;
  27.    private boolean abortFlag = false;
  28.  
  29.    protected ImageWriter(ImageWriterSpi var1) {
  30.       this.originatingProvider = var1;
  31.    }
  32.  
  33.    public ImageWriterSpi getOriginatingProvider() {
  34.       return this.originatingProvider;
  35.    }
  36.  
  37.    public void setOutput(Object var1) {
  38.       if (var1 != null) {
  39.          ImageWriterSpi var2 = this.getOriginatingProvider();
  40.          if (var2 != null) {
  41.             Class[] var3 = var2.getOutputTypes();
  42.             boolean var4 = false;
  43.  
  44.             for(int var5 = 0; var5 < var3.length; ++var5) {
  45.                if (var3[var5].isInstance(var1)) {
  46.                   var4 = true;
  47.                   break;
  48.                }
  49.             }
  50.  
  51.             if (!var4) {
  52.                throw new IllegalArgumentException("Illegal output type!");
  53.             }
  54.          }
  55.       }
  56.  
  57.       this.output = var1;
  58.    }
  59.  
  60.    public Object getOutput() {
  61.       return this.output;
  62.    }
  63.  
  64.    public Locale[] getAvailableLocales() {
  65.       return this.availableLocales == null ? null : (Locale[])((Locale[])this.availableLocales.clone());
  66.    }
  67.  
  68.    public void setLocale(Locale var1) {
  69.       if (var1 != null) {
  70.          Locale[] var2 = this.getAvailableLocales();
  71.          boolean var3 = false;
  72.          if (var2 != null) {
  73.             for(int var4 = 0; var4 < var2.length; ++var4) {
  74.                if (var1.equals(var2[var4])) {
  75.                   var3 = true;
  76.                   break;
  77.                }
  78.             }
  79.          }
  80.  
  81.          if (!var3) {
  82.             throw new IllegalArgumentException("Invalid locale!");
  83.          }
  84.       }
  85.  
  86.       this.locale = var1;
  87.    }
  88.  
  89.    public Locale getLocale() {
  90.       return this.locale;
  91.    }
  92.  
  93.    public ImageWriteParam getDefaultWriteParam() {
  94.       return new ImageWriteParam(this.getLocale());
  95.    }
  96.  
  97.    public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam var1);
  98.  
  99.    public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier var1, ImageWriteParam var2);
  100.  
  101.    public abstract IIOMetadata convertStreamMetadata(IIOMetadata var1, ImageWriteParam var2);
  102.  
  103.    public abstract IIOMetadata convertImageMetadata(IIOMetadata var1, ImageTypeSpecifier var2, ImageWriteParam var3);
  104.  
  105.    public int getNumThumbnailsSupported(ImageTypeSpecifier var1, ImageWriteParam var2, IIOMetadata var3, IIOMetadata var4) {
  106.       return 0;
  107.    }
  108.  
  109.    public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier var1, ImageWriteParam var2, IIOMetadata var3, IIOMetadata var4) {
  110.       return null;
  111.    }
  112.  
  113.    public boolean canWriteRasters() {
  114.       return false;
  115.    }
  116.  
  117.    public abstract void write(IIOMetadata var1, IIOImage var2, ImageWriteParam var3) throws IOException;
  118.  
  119.    public void write(IIOImage var1) throws IOException {
  120.       this.write((IIOMetadata)null, var1, (ImageWriteParam)null);
  121.    }
  122.  
  123.    public void write(RenderedImage var1) throws IOException {
  124.       this.write((IIOMetadata)null, new IIOImage(var1, (List)null, (IIOMetadata)null), (ImageWriteParam)null);
  125.    }
  126.  
  127.    private void unsupported() {
  128.       if (this.getOutput() == null) {
  129.          throw new IllegalStateException("getOutput() == null!");
  130.       } else {
  131.          throw new UnsupportedOperationException("Unsupported write variant!");
  132.       }
  133.    }
  134.  
  135.    public boolean canWriteSequence() {
  136.       return false;
  137.    }
  138.  
  139.    public void prepareWriteSequence(IIOMetadata var1) throws IOException {
  140.       this.unsupported();
  141.    }
  142.  
  143.    public void writeToSequence(IIOImage var1, ImageWriteParam var2) throws IOException {
  144.       this.unsupported();
  145.    }
  146.  
  147.    public void endWriteSequence() throws IOException {
  148.       this.unsupported();
  149.    }
  150.  
  151.    public boolean canReplaceStreamMetadata() throws IOException {
  152.       if (this.getOutput() == null) {
  153.          throw new IllegalStateException("getOutput() == null!");
  154.       } else {
  155.          return false;
  156.       }
  157.    }
  158.  
  159.    public void replaceStreamMetadata(IIOMetadata var1) throws IOException {
  160.       this.unsupported();
  161.    }
  162.  
  163.    public boolean canReplaceImageMetadata(int var1) throws IOException {
  164.       if (this.getOutput() == null) {
  165.          throw new IllegalStateException("getOutput() == null!");
  166.       } else {
  167.          return false;
  168.       }
  169.    }
  170.  
  171.    public void replaceImageMetadata(int var1, IIOMetadata var2) throws IOException {
  172.       this.unsupported();
  173.    }
  174.  
  175.    public boolean canInsertImage(int var1) throws IOException {
  176.       if (this.getOutput() == null) {
  177.          throw new IllegalStateException("getOutput() == null!");
  178.       } else {
  179.          return false;
  180.       }
  181.    }
  182.  
  183.    public void writeInsert(int var1, IIOImage var2, ImageWriteParam var3) throws IOException {
  184.       this.unsupported();
  185.    }
  186.  
  187.    public boolean canRemoveImage(int var1) throws IOException {
  188.       if (this.getOutput() == null) {
  189.          throw new IllegalStateException("getOutput() == null!");
  190.       } else {
  191.          return false;
  192.       }
  193.    }
  194.  
  195.    public void removeImage(int var1) throws IOException {
  196.       this.unsupported();
  197.    }
  198.  
  199.    public boolean canWriteEmpty() throws IOException {
  200.       if (this.getOutput() == null) {
  201.          throw new IllegalStateException("getOutput() == null!");
  202.       } else {
  203.          return false;
  204.       }
  205.    }
  206.  
  207.    public void prepareWriteEmpty(IIOMetadata var1, ImageTypeSpecifier var2, int var3, int var4, IIOMetadata var5, List<? extends BufferedImage> var6, ImageWriteParam var7) throws IOException {
  208.       this.unsupported();
  209.    }
  210.  
  211.    public void endWriteEmpty() throws IOException {
  212.       if (this.getOutput() == null) {
  213.          throw new IllegalStateException("getOutput() == null!");
  214.       } else {
  215.          throw new IllegalStateException("No call to prepareWriteEmpty!");
  216.       }
  217.    }
  218.  
  219.    public boolean canInsertEmpty(int var1) throws IOException {
  220.       if (this.getOutput() == null) {
  221.          throw new IllegalStateException("getOutput() == null!");
  222.       } else {
  223.          return false;
  224.       }
  225.    }
  226.  
  227.    public void prepareInsertEmpty(int var1, ImageTypeSpecifier var2, int var3, int var4, IIOMetadata var5, List<? extends BufferedImage> var6, ImageWriteParam var7) throws IOException {
  228.       this.unsupported();
  229.    }
  230.  
  231.    public void endInsertEmpty() throws IOException {
  232.       this.unsupported();
  233.    }
  234.  
  235.    public boolean canReplacePixels(int var1) throws IOException {
  236.       if (this.getOutput() == null) {
  237.          throw new IllegalStateException("getOutput() == null!");
  238.       } else {
  239.          return false;
  240.       }
  241.    }
  242.  
  243.    public void prepareReplacePixels(int var1, Rectangle var2) throws IOException {
  244.       this.unsupported();
  245.    }
  246.  
  247.    public void replacePixels(RenderedImage var1, ImageWriteParam var2) throws IOException {
  248.       this.unsupported();
  249.    }
  250.  
  251.    public void replacePixels(Raster var1, ImageWriteParam var2) throws IOException {
  252.       this.unsupported();
  253.    }
  254.  
  255.    public void endReplacePixels() throws IOException {
  256.       this.unsupported();
  257.    }
  258.  
  259.    public synchronized void abort() {
  260.       this.abortFlag = true;
  261.    }
  262.  
  263.    protected synchronized boolean abortRequested() {
  264.       return this.abortFlag;
  265.    }
  266.  
  267.    protected synchronized void clearAbortRequest() {
  268.       this.abortFlag = false;
  269.    }
  270.  
  271.    public void addIIOWriteWarningListener(IIOWriteWarningListener var1) {
  272.       if (var1 != null) {
  273.          this.warningListeners = ImageReader.addToList(this.warningListeners, var1);
  274.          this.warningLocales = ImageReader.addToList(this.warningLocales, this.getLocale());
  275.       }
  276.    }
  277.  
  278.    public void removeIIOWriteWarningListener(IIOWriteWarningListener var1) {
  279.       if (var1 != null && this.warningListeners != null) {
  280.          int var2 = this.warningListeners.indexOf(var1);
  281.          if (var2 != -1) {
  282.             this.warningListeners.remove(var2);
  283.             this.warningLocales.remove(var2);
  284.             if (this.warningListeners.size() == 0) {
  285.                this.warningListeners = null;
  286.                this.warningLocales = null;
  287.             }
  288.          }
  289.  
  290.       }
  291.    }
  292.  
  293.    public void removeAllIIOWriteWarningListeners() {
  294.       this.warningListeners = null;
  295.       this.warningLocales = null;
  296.    }
  297.  
  298.    public void addIIOWriteProgressListener(IIOWriteProgressListener var1) {
  299.       if (var1 != null) {
  300.          this.progressListeners = ImageReader.addToList(this.progressListeners, var1);
  301.       }
  302.    }
  303.  
  304.    public void removeIIOWriteProgressListener(IIOWriteProgressListener var1) {
  305.       if (var1 != null && this.progressListeners != null) {
  306.          this.progressListeners = ImageReader.removeFromList(this.progressListeners, var1);
  307.       }
  308.    }
  309.  
  310.    public void removeAllIIOWriteProgressListeners() {
  311.       this.progressListeners = null;
  312.    }
  313.  
  314.    protected void processImageStarted(int var1) {
  315.       if (this.progressListeners != null) {
  316.          int var2 = this.progressListeners.size();
  317.  
  318.          for(int var3 = 0; var3 < var2; ++var3) {
  319.             IIOWriteProgressListener var4 = (IIOWriteProgressListener)this.progressListeners.get(var3);
  320.             var4.imageStarted(this, var1);
  321.          }
  322.  
  323.       }
  324.    }
  325.  
  326.    protected void processImageProgress(float var1) {
  327.       if (this.progressListeners != null) {
  328.          int var2 = this.progressListeners.size();
  329.  
  330.          for(int var3 = 0; var3 < var2; ++var3) {
  331.             IIOWriteProgressListener var4 = (IIOWriteProgressListener)this.progressListeners.get(var3);
  332.             var4.imageProgress(this, var1);
  333.          }
  334.  
  335.       }
  336.    }
  337.  
  338.    protected void processImageComplete() {
  339.       if (this.progressListeners != null) {
  340.          int var1 = this.progressListeners.size();
  341.  
  342.          for(int var2 = 0; var2 < var1; ++var2) {
  343.             IIOWriteProgressListener var3 = (IIOWriteProgressListener)this.progressListeners.get(var2);
  344.             var3.imageComplete(this);
  345.          }
  346.  
  347.       }
  348.    }
  349.  
  350.    protected void processThumbnailStarted(int var1, int var2) {
  351.       if (this.progressListeners != null) {
  352.          int var3 = this.progressListeners.size();
  353.  
  354.          for(int var4 = 0; var4 < var3; ++var4) {
  355.             IIOWriteProgressListener var5 = (IIOWriteProgressListener)this.progressListeners.get(var4);
  356.             var5.thumbnailStarted(this, var1, var2);
  357.          }
  358.  
  359.       }
  360.    }
  361.  
  362.    protected void processThumbnailProgress(float var1) {
  363.       if (this.progressListeners != null) {
  364.          int var2 = this.progressListeners.size();
  365.  
  366.          for(int var3 = 0; var3 < var2; ++var3) {
  367.             IIOWriteProgressListener var4 = (IIOWriteProgressListener)this.progressListeners.get(var3);
  368.             var4.thumbnailProgress(this, var1);
  369.          }
  370.  
  371.       }
  372.    }
  373.  
  374.    protected void processThumbnailComplete() {
  375.       if (this.progressListeners != null) {
  376.          int var1 = this.progressListeners.size();
  377.  
  378.          for(int var2 = 0; var2 < var1; ++var2) {
  379.             IIOWriteProgressListener var3 = (IIOWriteProgressListener)this.progressListeners.get(var2);
  380.             var3.thumbnailComplete(this);
  381.          }
  382.  
  383.       }
  384.    }
  385.  
  386.    protected void processWriteAborted() {
  387.       if (this.progressListeners != null) {
  388.          int var1 = this.progressListeners.size();
  389.  
  390.          for(int var2 = 0; var2 < var1; ++var2) {
  391.             IIOWriteProgressListener var3 = (IIOWriteProgressListener)this.progressListeners.get(var2);
  392.             var3.writeAborted(this);
  393.          }
  394.  
  395.       }
  396.    }
  397.  
  398.    protected void processWarningOccurred(int var1, String var2) {
  399.       if (this.warningListeners != null) {
  400.          if (var2 == null) {
  401.             throw new IllegalArgumentException("warning == null!");
  402.          } else {
  403.             int var3 = this.warningListeners.size();
  404.  
  405.             for(int var4 = 0; var4 < var3; ++var4) {
  406.                IIOWriteWarningListener var5 = (IIOWriteWarningListener)this.warningListeners.get(var4);
  407.                var5.warningOccurred(this, var1, var2);
  408.             }
  409.  
  410.          }
  411.       }
  412.    }
  413.  
  414.    protected void processWarningOccurred(int var1, String var2, String var3) {
  415.       if (this.warningListeners != null) {
  416.          if (var2 == null) {
  417.             throw new IllegalArgumentException("baseName == null!");
  418.          } else if (var3 == null) {
  419.             throw new IllegalArgumentException("keyword == null!");
  420.          } else {
  421.             int var4 = this.warningListeners.size();
  422.  
  423.             for(int var5 = 0; var5 < var4; ++var5) {
  424.                IIOWriteWarningListener var6 = (IIOWriteWarningListener)this.warningListeners.get(var5);
  425.                Locale var7 = (Locale)this.warningLocales.get(var5);
  426.                if (var7 == null) {
  427.                   var7 = Locale.getDefault();
  428.                }
  429.  
  430.                ClassLoader var8 = (ClassLoader)AccessController.doPrivileged(new 1(this));
  431.                Object var9 = null;
  432.  
  433.                try {
  434.                   var16 = ResourceBundle.getBundle(var2, var7, var8);
  435.                } catch (MissingResourceException var15) {
  436.                   try {
  437.                      var16 = ResourceBundle.getBundle(var2, var7);
  438.                   } catch (MissingResourceException var14) {
  439.                      throw new IllegalArgumentException("Bundle not found!");
  440.                   }
  441.                }
  442.  
  443.                Object var10 = null;
  444.  
  445.                try {
  446.                   var17 = var16.getString(var3);
  447.                } catch (ClassCastException var12) {
  448.                   throw new IllegalArgumentException("Resource is not a String!");
  449.                } catch (MissingResourceException var13) {
  450.                   throw new IllegalArgumentException("Resource is missing!");
  451.                }
  452.  
  453.                var6.warningOccurred(this, var1, var17);
  454.             }
  455.  
  456.          }
  457.       }
  458.    }
  459.  
  460.    public void reset() {
  461.       this.setOutput((Object)null);
  462.       this.setLocale((Locale)null);
  463.       this.removeAllIIOWriteWarningListeners();
  464.       this.removeAllIIOWriteProgressListeners();
  465.       this.clearAbortRequest();
  466.    }
  467.  
  468.    public void dispose() {
  469.    }
  470. }
  471.