001/** 002 * =================================================== 003 * JCommon-Serializer : a free serialization framework 004 * =================================================== 005 * 006 * Project Info: http://reporting.pentaho.org/jcommon-serializer/ 007 * 008 * (C) Copyright 2006-2008, 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 * JCommonSerializerBoot 027 * ------------ 028 */ 029package org.jfree.serializer; 030 031import org.pentaho.reporting.libraries.base.boot.AbstractBoot; 032import org.pentaho.reporting.libraries.base.config.Configuration; 033import org.pentaho.reporting.libraries.base.versioning.ProjectInformation; 034 035/** 036 * The boot class guarantees a controlled initialization of the library. 037 * 038 * @author Thomas Morgner 039 */ 040public class JCommonSerializerBoot extends AbstractBoot 041{ 042 private static JCommonSerializerBoot instance; 043 044 /** 045 * Returns a singleton instance of the boot class. 046 * 047 * @return the singleton booter. 048 */ 049 public static synchronized JCommonSerializerBoot getInstance() 050 { 051 if (instance == null) 052 { 053 instance = new JCommonSerializerBoot(); 054 } 055 return instance; 056 } 057 058 /** 059 * Private constructor to prevent object creation. 060 */ 061 private JCommonSerializerBoot() 062 { 063 } 064 065 /** 066 * Loads the configuration. This will be called exactly once. 067 * 068 * @return The configuration. 069 */ 070 protected Configuration loadConfiguration() 071 { 072 return createDefaultHierarchicalConfiguration 073 ("/org/jfree/serializer/jcommon-serializer.properties", 074 "/jcommon-serializer.properties", true, JCommonSerializerBoot.class); 075 } 076 077 /** 078 * Performs the boot. This method is empty, as this library does not require any manual initializations. 079 */ 080 protected void performBoot() 081 { 082 083 } 084 085 /** 086 * Returns the project info. 087 * 088 * @return The project info. 089 */ 090 protected ProjectInformation getProjectInfo() 091 { 092 return JCommonSerializerInfo.getInstance(); 093 } 094}