001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.camel.component.printer;
018    
019    import javax.print.DocFlavor;
020    
021    public class DocFlavorAssigner {
022        private DocFlavor d = DocFlavor.BYTE_ARRAY.AUTOSENSE;
023        
024        public DocFlavor forMimeTypeAUTOSENSE(String flavor) {
025            if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
026                d = DocFlavor.BYTE_ARRAY.AUTOSENSE;
027            } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
028                d = DocFlavor.INPUT_STREAM.AUTOSENSE;
029            } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
030                d = DocFlavor.URL.AUTOSENSE;
031            }
032            
033            return d;
034        }
035        
036        public DocFlavor forMimeTypeGIF(String flavor) {
037            if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
038                d = DocFlavor.BYTE_ARRAY.GIF;
039            } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
040                d = DocFlavor.INPUT_STREAM.GIF;
041            } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
042                d = DocFlavor.URL.GIF;
043            }
044        
045            return d;
046        }
047        
048        public DocFlavor forMimeTypeJPEG(String flavor) {
049            if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
050                d = DocFlavor.BYTE_ARRAY.JPEG;
051            } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
052                d = DocFlavor.INPUT_STREAM.JPEG;
053            } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
054                d = DocFlavor.URL.JPEG;
055            }
056        
057            return d;
058        }    
059    
060        public DocFlavor forMimeTypePDF(String flavor) {
061            if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
062                d = DocFlavor.BYTE_ARRAY.PDF;
063            } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
064                d = DocFlavor.INPUT_STREAM.PDF;
065            } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
066                d = DocFlavor.URL.PDF;
067            }
068        
069            return d;
070        }     
071        
072        public DocFlavor forMimeTypePCL(String flavor) {
073            if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
074                d = DocFlavor.BYTE_ARRAY.PCL;
075            } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
076                d = DocFlavor.INPUT_STREAM.PCL;
077            } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
078                d = DocFlavor.URL.PCL;
079            }
080        
081            return d;
082        }        
083        
084        public DocFlavor forMimeTypePOSTSCRIPT(String flavor) {
085            if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
086                d = DocFlavor.BYTE_ARRAY.POSTSCRIPT;
087            } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
088                d = DocFlavor.INPUT_STREAM.POSTSCRIPT;
089            } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
090                d = DocFlavor.URL.POSTSCRIPT;
091            }
092        
093            return d;
094        }     
095        
096        public DocFlavor forMimeTypeHOST(String flavor, String mimeType) {
097            if (mimeType.equalsIgnoreCase("TEXT_HTML_HOST")) {
098                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
099                    d = DocFlavor.BYTE_ARRAY.TEXT_HTML_HOST;
100                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
101                    d = DocFlavor.INPUT_STREAM.TEXT_HTML_HOST;
102                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
103                    d = DocFlavor.URL.TEXT_HTML_HOST;
104                }
105            } else {
106                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
107                    d = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_HOST;
108                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
109                    d = DocFlavor.INPUT_STREAM.TEXT_PLAIN_HOST;
110                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
111                    d = DocFlavor.URL.TEXT_PLAIN_HOST;
112                }
113            }
114        
115            return d;
116        }
117        
118        public DocFlavor forMimeTypeUSASCII(String flavor, String mimeType) {
119            if (mimeType.equalsIgnoreCase("TEXT_HTML_US_ASCII")) {
120                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
121                    d = DocFlavor.BYTE_ARRAY.TEXT_HTML_US_ASCII;
122                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
123                    d = DocFlavor.INPUT_STREAM.TEXT_HTML_US_ASCII;
124                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
125                    d = DocFlavor.URL.TEXT_HTML_US_ASCII;
126                } 
127            } else {
128                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
129                    d = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_US_ASCII;
130                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
131                    d = DocFlavor.INPUT_STREAM.TEXT_PLAIN_US_ASCII;
132                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
133                    d = DocFlavor.URL.TEXT_PLAIN_US_ASCII;
134                }
135            }
136        
137            return d;
138        }
139    
140        public DocFlavor forMimeTypeUTF16(String flavor, String mimeType) {
141            if (mimeType.equalsIgnoreCase("TEXT_HTML_UTF_16")) {
142                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
143                    d = DocFlavor.BYTE_ARRAY.TEXT_HTML_UTF_16;
144                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
145                    d = DocFlavor.INPUT_STREAM.TEXT_HTML_UTF_16;
146                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
147                    d = DocFlavor.URL.TEXT_HTML_UTF_16;
148                } 
149            } else {
150                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
151                    d = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_UTF_16;
152                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
153                    d = DocFlavor.INPUT_STREAM.TEXT_PLAIN_UTF_16;
154                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
155                    d = DocFlavor.URL.TEXT_PLAIN_UTF_16;
156                }
157            }
158        
159            return d;
160        }
161        public DocFlavor forMimeTypeUTF16LE(String flavor, String mimeType) {
162            if (mimeType.equalsIgnoreCase("TEXT_HTML_UTF_16LE")) {
163                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
164                    d = DocFlavor.BYTE_ARRAY.TEXT_HTML_UTF_16LE;
165                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
166                    d = DocFlavor.INPUT_STREAM.TEXT_HTML_UTF_16LE;
167                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
168                    d = DocFlavor.URL.TEXT_HTML_UTF_16LE;
169                } 
170            } else {
171                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
172                    d = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_UTF_16LE;
173                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
174                    d = DocFlavor.INPUT_STREAM.TEXT_PLAIN_UTF_16LE;
175                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
176                    d = DocFlavor.URL.TEXT_PLAIN_UTF_16LE;
177                }
178            }
179        
180            return d;
181        }    
182        
183        public DocFlavor forMimeTypeUTF16BE(String flavor, String mimeType) {
184            if (mimeType.equalsIgnoreCase("TEXT_HTML_UTF_16BE")) {
185                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
186                    d = DocFlavor.BYTE_ARRAY.TEXT_HTML_UTF_16BE;
187                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
188                    d = DocFlavor.INPUT_STREAM.TEXT_HTML_UTF_16BE;
189                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
190                    d = DocFlavor.URL.TEXT_HTML_UTF_16BE;
191                }
192            } else {
193                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
194                    d = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_UTF_16BE;
195                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
196                    d = DocFlavor.INPUT_STREAM.TEXT_PLAIN_UTF_16BE;
197                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
198                    d = DocFlavor.URL.TEXT_PLAIN_UTF_16BE;
199                }            
200            }
201        
202            return d;
203        } 
204        
205        public DocFlavor forMimeTypeUTF8(String flavor, String mimeType) {
206            if (mimeType.equalsIgnoreCase("TEXT_HTML_UTF_16BE")) {
207                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
208                    d = DocFlavor.BYTE_ARRAY.TEXT_HTML_UTF_8;
209                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
210                    d = DocFlavor.INPUT_STREAM.TEXT_HTML_UTF_8;
211                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
212                    d = DocFlavor.URL.TEXT_HTML_UTF_8;
213                }
214            } else {
215                if (flavor.equalsIgnoreCase("DocFlavor.BYTE_ARRAY")) {
216                    d = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_UTF_8;
217                } else if (flavor.equalsIgnoreCase("DocFlavor.INPUT_STREAM")) {
218                    d = DocFlavor.INPUT_STREAM.TEXT_PLAIN_UTF_8;
219                } else if (flavor.equalsIgnoreCase("DocFlavor.URL")) {
220                    d = DocFlavor.URL.TEXT_PLAIN_UTF_8;
221                }
222            }
223        
224            return d;
225        }
226        
227        public DocFlavor forMimeTypeBasic(String flavor, String mimeType) {
228            if (mimeType.equalsIgnoreCase("TEXT_HTML_UTF_16BE")) {
229                if (flavor.equalsIgnoreCase("DocFlavor.CHAR_ARRAY")) {
230                    d = DocFlavor.CHAR_ARRAY.TEXT_HTML;
231                } else if (flavor.equalsIgnoreCase("DocFlavor.READER")) {
232                    d = DocFlavor.READER.TEXT_HTML;
233                } else if (flavor.equalsIgnoreCase("DocFlavor.STRING")) {
234                    d = DocFlavor.STRING.TEXT_HTML;
235                }
236            } else {
237                if (flavor.equalsIgnoreCase("DocFlavor.CHAR_ARRAY")) {
238                    d = DocFlavor.CHAR_ARRAY.TEXT_PLAIN;
239                } else if (flavor.equalsIgnoreCase("DocFlavor.READER")) {
240                    d = DocFlavor.READER.TEXT_PLAIN;
241                } else if (flavor.equalsIgnoreCase("DocFlavor.STRING")) {
242                    d = DocFlavor.STRING.TEXT_PLAIN;
243                }
244            }
245        
246            return d;
247        }
248        
249        public DocFlavor forMimeTypePAGEABLE(String flavor) {
250            return d = DocFlavor.SERVICE_FORMATTED.PAGEABLE; 
251        }
252        
253        public DocFlavor forMimeTypePRINTABLE(String flavor) {
254            return d = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
255        }
256    
257        public DocFlavor forMimeTypeRENDERABLEIMAGE(String flavor) {
258            return d = DocFlavor.SERVICE_FORMATTED.RENDERABLE_IMAGE;
259        }
260    }