View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of Java-Common.
5    *
6    * Java-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * Java-Common is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with Java-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.util;
21  
22  /**
23   * <code>DefaultObjectFactory</code> is default <code>ObjectFactory</code> implementation.
24   * Tries to create a new instance of certain <code>Class</code> objects with default constructor.
25   * If it fails creating new instance with default constructor it will returned <code>null</code>
26   *
27   * @author <a href="mailto:andrej.kosmrlj@cosylab.com">Andrej Kosmrlj</a>
28   * @version $Id: DefaultObjectFactory.java,v 1.3 2008-04-22 12:26:29 jbobnar Exp $
29   * 
30   * @since VERSION
31   */
32  public class DefaultObjectFactory implements ObjectFactory {
33  	
34  	Class objectType;
35  	
36  	public DefaultObjectFactory(Class objectType){
37  		if (objectType == null) throw new NullPointerException("objectType");
38  		if (!PoolableObject.class.isAssignableFrom(objectType)) throw new IllegalArgumentException("objectType !instanceof PoolableObject");
39  		this.objectType=objectType;
40  	}
41  
42  	/* (non-Javadoc)
43  	 * @see com.cosylab.util.ObjectFactory#newInstance()
44  	 */
45  	public PoolableObject newInstance() {
46  		PoolableObject o=null;
47  		try{
48  			o=(PoolableObject)objectType.newInstance();
49  		} catch (Exception e){
50  			e.printStackTrace();
51  		}
52  		return o;
53  	}
54  
55  }