001 /**
002 * ========================================
003 * JFreeReport : a free Java report library
004 * ========================================
005 *
006 * Project Info: http://reporting.pentaho.org/
007 *
008 * (C) Copyright 2000-2007, by Object Refinery Limited, Pentaho Corporation and Contributors.
009 *
010 * This library is free software; you can redistribute it and/or modify it under the terms
011 * of the GNU Lesser General Public License as published by the Free Software Foundation;
012 * either version 2.1 of the License, or (at your option) any later version.
013 *
014 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
015 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016 * See the GNU Lesser General Public License for more details.
017 *
018 * You should have received a copy of the GNU Lesser General Public License along with this
019 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020 * Boston, MA 02111-1307, USA.
021 *
022 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
023 * in the United States and other countries.]
024 *
025 * ------------
026 * $Id: JFreeReportCoreModule.java,v 1.15 2007/04/01 18:49:23 taqua Exp $
027 * ------------
028 * (C) Copyright 2000-2005, by Object Refinery Limited.
029 * (C) Copyright 2005-2007, by Pentaho Corporation.
030 */
031
032 package org.jfree.report;
033
034 import java.io.InputStream;
035
036 import org.jfree.base.modules.AbstractModule;
037 import org.jfree.base.modules.ModuleInitializeException;
038 import org.jfree.base.modules.SubSystem;
039 import org.jfree.util.ObjectUtilities;
040
041
042 /**
043 * The CoreModule is used to represent the base classes of JFreeReport in a
044 * PackageManager-compatible way. Modules may request a certain core-version to be present
045 * by referencing to this module.
046 * <p>
047 * This module is used to initialize the image and drawable factories. If the
048 * Pixie library is available, support for WMF-files is added to the factories.
049 *
050 * @author Thomas Morgner
051 */
052 public class JFreeReportCoreModule extends AbstractModule
053 {
054 /**
055 * The 'no-printer-available' property key.
056 */
057 public static final String NO_PRINTER_AVAILABLE_KEY
058 = "org.jfree.report.NoPrinterAvailable";
059
060 /**
061 * The G2 fontrenderer bug override configuration key.
062 */
063 public static final String FONTRENDERER_ISBUGGY_FRC_KEY
064 = "org.jfree.report.layout.fontrenderer.IsBuggyFRC";
065
066 /**
067 * The text aliasing configuration key.
068 */
069 public static final String FONTRENDERER_USEALIASING_KEY
070 = "org.jfree.report.layout.fontrenderer.UseAliasing";
071
072 /**
073 * A configuration key that defines, whether errors will abort the report
074 * processing. This defaults to true.
075 */
076 public static final String STRICT_ERROR_HANDLING_KEY
077 = "org.jfree.report.StrictErrorHandling";
078 /**
079 * Creates a new module definition based on the 'coremodule.properties' file of this
080 * package.
081 *
082 * @throws ModuleInitializeException if the file could not be loaded.
083 */
084 public JFreeReportCoreModule ()
085 throws ModuleInitializeException
086 {
087 final InputStream in = ObjectUtilities.getResourceRelativeAsStream
088 ("coremodule.properties", JFreeReportCoreModule.class);
089 if (in == null)
090 {
091 throw new ModuleInitializeException
092 ("File 'coremodule.properties' not found in JFreeReport package.");
093 }
094 loadModuleInfo(in);
095 }
096
097 /**
098 * Initializes the module. Use this method to perform all initial setup operations. This
099 * method is called only once in a modules lifetime. If the initializing cannot be
100 * completed, throw a ModuleInitializeException to indicate the error,. The module will
101 * not be available to the system.
102 *
103 * @param subSystem the subSystem.
104 * @throws org.jfree.base.modules.ModuleInitializeException
105 * if an error ocurred while initializing the module.
106 */
107 public void initialize (final SubSystem subSystem)
108 throws ModuleInitializeException
109 {
110 }
111 }