KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > print > MappingPrinter


1 /**
2  * $Id: MappingPrinter.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 2003-2004 iDare Media, Inc. All rights reserved.
4  *
5  * Originally written by iDare Media, Inc. for release into the public domain. This
6  * library, source form and binary form, is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License (LGPL) as published
8  * by the Free Software Foundation; either version 2.1 of the License, or (at your option)
9  * any later version.<p>
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  * See the GNU LGPL for more details.<p>
14  *
15  * You should have received a copy of the GNU Lesser General Public License along with this
16  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
17  * 330, Boston, MA 02111-1307 USA. The GNU LGPL can be found online at
18  * http://www.fsf.org/copyleft/lesser.html<p>
19  *
20  * This product has been influenced by several projects within the open-source community.
21  * The JWare developers wish to acknowledge the open-source community's support. For more
22  * information regarding the open-source products used within JWare, please visit the
23  * JWare website.
24  *----------------------------------------------------------------------------------------*
25  * WEBSITE- http://www.jware.info EMAIL- inquiries@jware.info
26  *----------------------------------------------------------------------------------------*
27  **/

28
29 package com.idaremedia.antx.print;
30
31 import java.io.IOException JavaDoc;
32 import java.io.OutputStream JavaDoc;
33 import java.io.PrintStream JavaDoc;
34 import java.util.Date JavaDoc;
35 import java.util.Iterator JavaDoc;
36
37
38 /**
39  * Default strategy for printing a {@linkplain PrinterMapping} to an output stream.
40  * Prints a series of "<i>key=value</i>" for the display class name and for each
41  * mapping pair. For example the mapping: <pre>
42  * &lt;printer classname="my.foo.Printer" forclass="my.bar.Class"/&gt;
43  * </pre>
44  * will produce output like:<pre>
45  * CLASSNAME=my.foo.Printer
46  * &#64;1=my.bar.Class
47  * </pre>
48  *
49  * @since JWare/AntX 0.4
50  * @author ssmc, &copy;2003-2004 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
51  * @version 0.5
52  * @.safety multiple
53  * @.group impl,helper
54  * @see PrinterMapping
55  **/

56
57 public final class MappingPrinter implements DisplayStrategy
58 {
59     /**
60      * Initializes a new MappingPrinter.
61      **/

62     public MappingPrinter()
63     {
64     }
65
66
67     /**
68      * Writes the display strategy's full class name with key
69      * "CLASSNAME", then copies the set of mapped-to class names
70      * to the given output stream. The generated output can be
71      * fed back into a printer mapping as a resource.
72      * @param info display information (non-null)
73      * @param os the output stream (non-null)
74      * @throws IOException if any I/O error occurs
75      **/

76     public void print(final DisplayRequest info, OutputStream JavaDoc os)
77         throws IOException JavaDoc
78     {
79         Object JavaDoc thing = info.getObjectToBeDisplayed();
80
81         if (thing instanceof PrinterMapping) {
82             PrinterMapping pm = (PrinterMapping)thing;
83             PrintStream JavaDoc ps = new PrintStream JavaDoc(os);
84
85             //- header
86
ps.println();
87             ps.print("#PrinterMapping: ");
88             ps.println(pm.getId());
89             ps.print("#");
90             ps.println(new Date JavaDoc());
91             ps.print("#Size: ");
92             ps.println(String.valueOf(pm.getTargetClasses().size()));
93
94             //- content
95
ps.print(PrinterMapping.RESOURCE_KEY);
96             ps.print("=");
97             ps.println(String.valueOf(pm.getPrinterClassName()));
98             Iterator JavaDoc itr= pm.getTargetClasses().iterator();
99             int i=1;
100             while (itr.hasNext()) {
101                 ps.print("@");
102                 ps.print(i++);
103                 ps.print("=");
104                 ps.println(((Class JavaDoc)itr.next()).getName());
105             }
106             try {os.flush();} catch(IOException JavaDoc iox) {/*burp*/}
107             itr = null;
108             ps = null;
109         }
110     }
111 }
112
113 /* end-of-MappingPrinter.java */
114
Popular Tags