00001 /* 00002 * OpenMobileIS - a free Java(TM) Framework for mobile applications Java(TM) 00003 * Copyright (C) 2004-2006 Philippe Delrieu 00004 * All rights reserved. 00005 * Contact: pdelrieu@openmobileis.org 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00020 * USA 00021 * 00022 * Author : Philippe Delrieu 00023 * 00024 * Modifications : 00025 * 2004 Creation P.Delrieu 00026 * 00027 */ 00028 00029 package org.openmobileis.synchro.openmsp.server.util; 00030 00031 import org.openmobileis.common.context.UserTerminal; 00032 import org.openmobileis.common.util.exception.DefaultException; 00033 import org.openmobileis.common.util.log.LogManager; 00034 00042 public class FileSystemObjectPoolSelecter { 00043 private static FileSystemObjectPoolSelecter manager; 00044 private FileSystemObjectPool memoryPool; 00045 00046 private FileSystemObjectPoolSelecter() throws ClassNotFoundException, IllegalAccessException, InstantiationException { 00047 memoryPool = new FileSystemObjectPool("org.openmobileis.synchro.openmsp.server.util.MemoryFileSystem"); 00048 } 00049 00050 public final static FileSystemObjectPool getPool(UserTerminal terminal) { 00051 if (manager == null) { 00052 synchronized (FileSystemObjectPool.class) { 00053 if (manager == null) { 00054 try { 00055 manager = new FileSystemObjectPoolSelecter(); 00056 } catch (Exception e) { 00057 LogManager.trace(new DefaultException("Can't initialize FileSystemObject pool", e)); 00058 00059 } 00060 } 00061 } 00062 } 00063 FileSystemObjectPool pool = manager.memoryPool; 00064 return pool; 00065 } 00066 }