/protocols/jain-mgcp/stack/src/main/java/org/mobicents/protocols/mgcp/parser/UtilsFactory.java
Java | 79 lines | 43 code | 15 blank | 21 comment | 8 complexity | edf206ea78d275e3d8c1183edc2e08c1 MD5 | raw file
1/* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2011, Red Hat, Inc. and individual contributors 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 23package org.mobicents.protocols.mgcp.parser; 24 25import java.util.ArrayList; 26import java.util.List; 27 28import org.apache.log4j.Logger; 29 30public class UtilsFactory { 31 32 private static final Logger logger = Logger.getLogger(UtilsFactory.class); 33 34 private List<Utils> list = new ArrayList<Utils>(); 35 private int size = 0; 36 private int count = 0; 37 38 public UtilsFactory(int size) { 39 this.size = size; 40 for (int i = 0; i < size; i++) { 41 Utils utils = new Utils(); 42 list.add(utils); 43 } 44 } 45 46 public Utils allocate() { 47 Utils utils = null; 48 49 if (!list.isEmpty()) { 50 utils = list.remove(0); 51 if (utils != null) { 52 return utils; 53 } 54 } 55 56 utils = new Utils(); 57 count++; 58 59 if (logger.isInfoEnabled()) { 60 logger.info("UtilsFactory underflow. Better to increase the size of Utils count. Count = " + count); 61 } 62 return utils; 63 } 64 65 public void deallocate(Utils utils) { 66 if (list.size() < size && utils != null) { 67 list.add(utils); 68 } 69 } 70 71 public int getSize() { 72 return this.size; 73 } 74 75 public int getCount() { 76 return this.count; 77 } 78 79}