@Override public T requestInstance() { T n = super.requestInstance(); used.add(n); return n; } }
@Override public T requestInstance() { T n = super.requestInstance(); used.add(n); return n; } }
/** * Creates a new edge which will connect the two nodes. The side on each node which is connected * is specified by the indexes. * @param a First node * @param indexA side on node 'a' * @param b Second node * @param indexB side on node 'b' * @param distance distance apart the center of the two nodes */ void connect( SquareNode a , int indexA , SquareNode b , int indexB , double distance ) { SquareEdge edge = edges.requestInstance(); edge.reset(); edge.a = a; edge.sideA = indexA; edge.b = b; edge.sideB = indexB; edge.distance = distance; a.edges[indexA] = edge; b.edges[indexB] = edge; } }
@Test public void requestInstance_recycleInstance() { RecycleManager<Dummy> manager = new RecycleManager<Dummy>(Dummy.class); Dummy first = manager.requestInstance(); Dummy second = manager.requestInstance(); manager.recycleInstance(first); Dummy third = manager.requestInstance(); assertTrue(first==third); assertTrue(first!=second); assertEquals(0, manager.unused.size()); }