package org.mobicents.mgcp.stack.parser;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
public class UtilsFactory {
private static final Logger logger = Logger.getLogger(UtilsFactory.class);
private List<Utils> list = new ArrayList<Utils>();
private int size = 0;
private int count = 0;
public UtilsFactory(int size) {
this.size = size;
for (int i = 0; i < size; i++) {
Utils utils = new Utils();
list.add(utils);
}
}
public Utils allocate() {
Utils utils = null;
if (!list.isEmpty()) {
utils = list.remove(0);
return utils;
}
utils = new Utils();
count++;
if (logger.isDebugEnabled()) {
logger.debug("UtilsFactory underflow. Count = " + count);
}
return utils;
}
public void deallocate(Utils utils) {
if (list.size() < size && utils != null) {
list.add(utils);
}
}
public int getSize() {
return this.size;
}
public int getCount() {
return this.count;
}
}