Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/batik/apps/rasterizer/DestinationType.java


1   /*
2   
3      Copyright 2001,2003  The Apache Software Foundation 
4   
5      Licensed under the Apache License, Version 2.0 (the "License");
6      you may not use this file except in compliance with the License.
7      You may obtain a copy of the License at
8   
9          http://www.apache.org/licenses/LICENSE-2.0
10  
11     Unless required by applicable law or agreed to in writing, software
12     distributed under the License is distributed on an "AS IS" BASIS,
13     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14     See the License for the specific language governing permissions and
15     limitations under the License.
16  
17   */
18  package org.apache.batik.apps.rasterizer;
19  
20  import org.apache.batik.transcoder.Transcoder;
21  import org.apache.batik.transcoder.image.JPEGTranscoder;
22  import org.apache.batik.transcoder.image.PNGTranscoder;
23  import org.apache.batik.transcoder.image.TIFFTranscoder;
24  
25  /**
26   * Describes the type of destination for an <tt>SVGConverter</tt>
27   * operation.
28   *
29   * @author Henri Ruini
30   * @author <a href="mailto:vhardy@apache.org">Vincent Hardy</a>
31   * @version $Id: DestinationType.java,v 1.6 2005/03/27 08:58:29 cam Exp $
32   */
33  public final class DestinationType {
34      public static final String PNG_STR  = "image/png";
35      public static final String JPEG_STR = "image/jpeg";
36      public static final String TIFF_STR = "image/tiff";
37      public static final String PDF_STR  = "application/pdf";
38  
39      public static final int PNG_CODE  = 0;
40      public static final int JPEG_CODE = 1;
41      public static final int TIFF_CODE = 2;
42      public static final int PDF_CODE  = 3;
43          
44      public static final String PNG_EXTENSION  = ".png";
45      public static final String JPEG_EXTENSION = ".jpg";
46      public static final String TIFF_EXTENSION = ".tif";
47      public static final String PDF_EXTENSION  = ".pdf";
48  
49      public static final DestinationType PNG  
50          = new DestinationType(PNG_STR, PNG_CODE, PNG_EXTENSION);
51      public static final DestinationType JPEG 
52          = new DestinationType(JPEG_STR, JPEG_CODE, JPEG_EXTENSION);
53      public static final DestinationType TIFF 
54          = new DestinationType(TIFF_STR, TIFF_CODE, TIFF_EXTENSION);
55      public static final DestinationType PDF  
56          = new DestinationType(PDF_STR, PDF_CODE, PDF_EXTENSION);
57  
58      private String type;
59      private int    code;
60      private String extension;
61  
62      private DestinationType(String type, int code, String extension){
63          this.type = type;
64          this.code = code;
65          this.extension = extension;
66      }
67      
68      public String getExtension(){
69          return extension;
70      }
71  
72      public String toString(){
73          return type;
74      }
75  
76      public int toInt(){
77          return code;
78      }
79  
80      /**
81       * Returns a transcoder object of the result image type.
82       *
83       * @return Transcoder object or <tt>null</tt> if there isn't a proper transcoder.
84       */
85      protected Transcoder getTranscoder(){
86          switch(code) {
87              case PNG_CODE:
88                  return new PNGTranscoder();
89              case JPEG_CODE:
90                  return new JPEGTranscoder();
91              case TIFF_CODE:
92                  return new TIFFTranscoder();
93              case PDF_CODE:
94                  try {
95                      Class pdfClass = Class.forName("org.apache.fop.svg.PDFTranscoder");
96                      return (Transcoder)pdfClass.newInstance();
97                  } catch(Exception e) {
98                      return null;
99                  }
100             default:
101                 return null;
102         }
103 
104     }
105 
106     /**
107      * Defines valid image types.
108      *
109      * @return Array of valid values as strings.
110      */
111     public DestinationType[] getValues() {
112         return new DestinationType[]{PNG, JPEG, TIFF, PDF};
113     }
114 
115     public Object readResolve(){
116         switch(code){
117         case PNG_CODE:
118             return PNG;
119         case JPEG_CODE:
120             return JPEG;
121         case TIFF_CODE:
122             return TIFF;
123         case PDF_CODE:
124             return PDF;
125         default:
126             throw new Error();
127         }
128     }
129 }