DynamicTLStack.java :  » Graphics-3D-2D-OpenGL » android-opengl-box2d-basics » org » jbox2d » pooling » stacks » Android Open Source

Android Open Source » Graphics 3D 2D OpenGL » android opengl box2d basics 
android opengl box2d basics » org » jbox2d » pooling » stacks » DynamicTLStack.java
package org.jbox2d.pooling.stacks;

import java.util.Stack;

import org.jbox2d.pooling.TLStack;

public abstract class DynamicTLStack<T> {

  private final TLStack<T> tlStack = new TLStack<T>();
  
  public T get(){
    Stack<T> stack = tlStack.get();
    
    if(stack.isEmpty()){
      stack.push(newObjectInstance());
      stack.push(newObjectInstance());
      stack.push(newObjectInstance());
    }
    
    return stack.pop();
  }
  
  public void recycle(T argObject){
    tlStack.get().push(argObject);
  }
  
  protected abstract T newObjectInstance();
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.