KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > lowagie > text > rtf > RtfElement


1 /*
2  * $Id: RtfElement.java 2808 2007-05-30 10:58:16Z psoares33 $
3  * $Name: $
4  *
5  * Copyright 2001, 2002, 2003, 2004 by Mark Hall
6  *
7  * The contents of this file are subject to the Mozilla Public License Version 1.1
8  * (the "License"); you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the License.
14  *
15  * The Original Code is 'iText, a free JAVA-PDF library'.
16  *
17  * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
18  * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
19  * All Rights Reserved.
20  * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
21  * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
22  *
23  * Contributor(s): all the names of the contributors are added in the source code
24  * where applicable.
25  *
26  * Alternatively, the contents of this file may be used under the terms of the
27  * LGPL license (the ?GNU LIBRARY GENERAL PUBLIC LICENSE?), in which case the
28  * provisions of LGPL are applicable instead of those above. If you wish to
29  * allow use of your version of this file only under the terms of the LGPL
30  * License and not to allow others to use your version of this file under
31  * the MPL, indicate your decision by deleting the provisions above and
32  * replace them with the notice and other provisions required by the LGPL.
33  * If you do not delete the provisions above, a recipient may use your version
34  * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
35  *
36  * This library is free software; you can redistribute it and/or modify it
37  * under the terms of the MPL as stated above or under the terms of the GNU
38  * Library General Public License as published by the Free Software Foundation;
39  * either version 2 of the License, or any later version.
40  *
41  * This library is distributed in the hope that it will be useful, but WITHOUT
42  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
43  * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
44  * details.
45  *
46  * If you didn't download this code from the following link, you should check if
47  * you aren't using an obsolete version:
48  * http://www.lowagie.com/iText/
49  */

50
51 package com.lowagie.text.rtf;
52
53 import java.io.IOException JavaDoc;
54 import java.io.OutputStream JavaDoc;
55
56 import com.lowagie.text.rtf.document.RtfDocument;
57
58 /**
59  * RtfElement is the base class for all RTF Element classes
60  *
61  * @version $Id: RtfElement.java 2808 2007-05-30 10:58:16Z psoares33 $
62  * @author Mark Hall (mhall@edu.uni-klu.ac.at)
63  * @author Thomas Bickel (tmb99@inode.at)
64  */

65 public abstract class RtfElement implements RtfBasicElement {
66     /**
67      * The RtfDocument this RtfElement belongs to
68      */

69     protected RtfDocument document = null;
70     /**
71      * Whether this RtfElement is in a table
72      */

73     protected boolean inTable = false;
74     /**
75      * Whether this RtfElement is in a header
76      */

77     protected boolean inHeader = false;
78     
79     /**
80      * Constructs a RtfElement belonging to the specified RtfDocument.
81      *
82      * @param doc The RtfDocument this RtfElement belongs to
83      */

84     public RtfElement(RtfDocument doc) {
85         super();
86         this.document = doc;
87     }
88
89     /**
90      * Transforms an integer into its String representation and then returns the bytes
91      * of that string.
92      *
93      * @param i The integer to convert
94      * @return A byte array representing the integer
95      */

96     public byte[] intToByteArray(int i)
97     {
98         return Integer.toString(i).getBytes();
99     }
100
101     /**
102      * Returns the content of the RtfElement in a byte array.
103      *
104      * @return An empty byte array
105      * @deprecated replaced by {@link #writeContent(OutputStream)}
106      */

107     public abstract byte[] write();
108     
109     /**
110      * Writes the element content to the given output stream.
111      */

112     public void writeContent(final OutputStream JavaDoc out) throws IOException JavaDoc
113     {
114         try {
115             byte[] content = write();
116             out.write(content);
117         } catch(OutOfMemoryError JavaDoc e) {
118             System.out.println(getClass());
119             throw(e);
120         } catch(RuntimeException JavaDoc e) {
121             System.out.println(getClass());
122             throw(e);
123         }
124     }
125     
126     /**
127      * Sets the RtfDocument this RtfElement belongs to
128      *
129      * @param doc The RtfDocument to use
130      */

131     public void setRtfDocument(RtfDocument doc) {
132         this.document = doc;
133     }
134     
135     /**
136      * Gets whether this RtfElement is in a table
137      *
138      * @return Whether this RtfElement is in a table
139      */

140     public boolean isInTable() {
141         return inTable;
142     }
143     
144     /**
145      * Sets whether this RtfElement is in a table
146      *
147      * @param inTable <code>True</code> if this RtfElement is in a table, <code>false</code> otherwise
148      */

149     public void setInTable(boolean inTable) {
150         this.inTable = inTable;
151     }
152     
153     /**
154      * Sets whether this RtfElement is in a header
155      *
156      * @param inHeader <code>True</code> if this RtfElement is in a header, <code>false</code> otherwise
157      */

158     public void setInHeader(boolean inHeader) {
159         this.inHeader = inHeader;
160     }
161     
162     
163 }
164
Popular Tags