01: /*
02: * ============================================================================
03: * GNU Lesser General Public License
04: * ============================================================================
05: *
06: * JasperReports - Free Java report-generating library.
07: * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
08: *
09: * This library is free software; you can redistribute it and/or
10: * modify it under the terms of the GNU Lesser General Public
11: * License as published by the Free Software Foundation; either
12: * version 2.1 of the License, or (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17: * Lesser General Public License for more details.
18: *
19: * You should have received a copy of the GNU Lesser General Public
20: * License along with this library; if not, write to the Free Software
21: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22: *
23: * JasperSoft Corporation
24: * 303 Second Street, Suite 450 North
25: * San Francisco, CA 94107
26: * http://www.jaspersoft.com
27: */
28: package net.sf.jasperreports.engine.util;
29:
30: import java.io.InvalidObjectException;
31: import java.text.AttributedCharacterIterator;
32: import java.util.HashMap;
33: import java.util.Map;
34:
35: import net.sf.jasperreports.engine.JRConstants;
36:
37: /**
38: * @author Teodor Danciu (teodord@users.sourceforge.net)
39: * @version $Id: JRTextAttribute.java 1677 2007-03-29 11:44:30Z teodord $
40: */
41: public final class JRTextAttribute extends
42: AttributedCharacterIterator.Attribute {
43: /**
44: *
45: */
46: private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;
47:
48: private static final Map instanceMap = new HashMap(4);
49:
50: /**
51: *
52: */
53: public static JRTextAttribute PDF_FONT_NAME = new JRTextAttribute(
54: "PDF_FONT_NAME");
55: public static JRTextAttribute PDF_ENCODING = new JRTextAttribute(
56: "PDF_ENCODING");
57: public static JRTextAttribute IS_PDF_EMBEDDED = new JRTextAttribute(
58: "IS_PDF_EMBEDDED");
59: public static JRTextAttribute HTML_FONT_FACE = new JRTextAttribute(
60: "HTML_FONT_FACE");
61:
62: /**
63: *
64: */
65: private JRTextAttribute(String name) {
66: super (name);
67:
68: if (this .getClass() == JRTextAttribute.class) {
69: instanceMap.put(name, this );
70: }
71: }
72:
73: /**
74: * Resolves instances being deserialized to the predefined constants.
75: */
76: protected Object readResolve() throws InvalidObjectException {
77: if (this .getClass() != JRTextAttribute.class) {
78: throw new InvalidObjectException(
79: "Subclass didn't correctly implement readResolve");
80: }
81:
82: JRTextAttribute instance = (JRTextAttribute) instanceMap
83: .get(getName());
84: if (instance != null) {
85: return instance;
86: }
87:
88: throw new InvalidObjectException("Unknown attribute name");
89: }
90:
91: }
|