2
* ===========================================
3
* LibFonts : a free Java font reading library
4
* ===========================================
6
* Project Info: http://reporting.pentaho.org/libfonts/
8
* (C) Copyright 2006-2007, by Pentaho Corporation and Contributors.
10
* This library is free software; you can redistribute it and/or modify it under the terms
11
* of the GNU Lesser General Public License as published by the Free Software Foundation;
12
* either version 2.1 of the License, or (at your option) any later version.
14
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
* See the GNU Lesser General Public License for more details.
18
* You should have received a copy of the GNU Lesser General Public License along with this
19
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20
* Boston, MA 02111-1307, USA.
22
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
23
* in the United States and other countries.]
26
* $Id: EncodingFactory.java 3523 2007-10-16 11:03:09Z tmorgner $
28
* (C) Copyright 2006-2007, by Pentaho Corporation.
30
package org.jfree.fonts.encoding;
32
import java.io.InputStream;
33
import java.io.ObjectInputStream;
34
import java.io.IOException;
36
import org.jfree.resourceloader.ResourceFactory;
37
import org.jfree.resourceloader.Resource;
38
import org.jfree.resourceloader.ResourceManager;
39
import org.jfree.resourceloader.ResourceData;
40
import org.jfree.resourceloader.ResourceKey;
41
import org.jfree.resourceloader.ResourceCreationException;
42
import org.jfree.resourceloader.ResourceLoadingException;
43
import org.jfree.resourceloader.SimpleResource;
46
* Creation-Date: 29.04.2006, 14:32:15
48
* @author Thomas Morgner
50
public class EncodingFactory implements ResourceFactory
52
public EncodingFactory()
56
public Resource create(final ResourceManager manager,
57
final ResourceData data,
58
final ResourceKey context)
59
throws ResourceCreationException, ResourceLoadingException
63
final InputStream in = data.getResourceAsStream(manager);
64
final ObjectInputStream oin = new ObjectInputStream(in);
67
final Object ob = oin.readObject();
68
// yes, that will be more generic in the future ...
69
if (ob instanceof External8BitEncodingData == false)
71
throw new ResourceCreationException("This is no 8Bit Encoding data");
73
final External8BitEncodingData encData = (External8BitEncodingData) ob;
74
final External8BitEncodingCore encCore =
75
new External8BitEncodingCore(encData);
76
return new SimpleResource(data.getKey(), encCore, data.getVersion(manager));
85
throw new ResourceLoadingException("Failed to load resource", e);
87
catch (ClassNotFoundException e)
89
throw new ResourceCreationException
90
("Missing class definition: Failed to create encoding.");
94
public Class getFactoryType()
96
return Encoding.class;
99
public void initializeDefaults()
101
// do nothing -- yet ..