BookmarkFactory.java |
1 /** 2 * Distribution License: 3 * JSword is free software; you can redistribute it and/or modify it under 4 * the terms of the GNU Lesser General Public License, version 2.1 or later 5 * as published by the Free Software Foundation. This program is distributed 6 * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even 7 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8 * See the GNU Lesser General Public License for more details. 9 * 10 * The License is available on the internet at: 11 * http://www.gnu.org/copyleft/lgpl.html 12 * or by writing to: 13 * Free Software Foundation, Inc. 14 * 59 Temple Place - Suite 330 15 * Boston, MA 02111-1307, USA 16 * 17 * © CrossWire Bible Society, 2005 - 2016 18 * 19 */ 20 package org.crosswire.jsword.book; 21 22 import java.io.IOException; 23 24 import org.crosswire.common.util.PluginUtil; 25 import org.slf4j.Logger; 26 import org.slf4j.LoggerFactory; 27 28 /** 29 * A Factory class for Bookmarks. 30 * 31 * @see gnu.lgpl.License The GNU Lesser General Public License for details. 32 * @author Joe Walker 33 */ 34 public final class BookmarkFactory { 35 /** 36 * Prevent instantiation 37 */ 38 private BookmarkFactory() { 39 } 40 41 /** 42 * Create a new Bookmark. 43 * 44 * @return the singleton 45 */ 46 public static Bookmark getBookmark() { 47 return instance.clone(); 48 } 49 50 /** 51 * The singleton 52 */ 53 private static Bookmark instance; 54 55 /** 56 * The log stream 57 */ 58 private static final Logger LOGGER = LoggerFactory.getLogger(BookmarkFactory.class); 59 60 /** 61 * Setup the instance 62 */ 63 static { 64 try { 65 instance = PluginUtil.getImplementation(Bookmark.class); 66 } catch (IOException e) { 67 LOGGER.error("createBookmark failed", e); 68 } catch (ClassCastException e) { 69 LOGGER.error("createBookmark failed", e); 70 } catch (ClassNotFoundException e) { 71 LOGGER.error("createBookmark failed", e); 72 } catch (IllegalAccessException e) { 73 LOGGER.error("createBookmark failed", e); 74 } catch (InstantiationException e) { 75 LOGGER.error("createBookmark failed", e); 76 } 77 } 78 } 79