1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.pool2;
19
20 import org.apache.commons.pool2.impl.DefaultPooledObject;
21
22
23
24
25
26
27 public class VisitTrackerFactory<K>
28 implements PooledObjectFactory<VisitTracker<K>>, KeyedPooledObjectFactory<K, VisitTracker<K>> {
29
30 private int nextId;
31
32 @Override
33 public void activateObject(final K key, final PooledObject<VisitTracker<K>> ref) {
34 ref.getObject().activate();
35 }
36
37 @Override
38 public void activateObject(final PooledObject<VisitTracker<K>> ref) {
39 ref.getObject().activate();
40 }
41
42 @Override
43 public void destroyObject(final K key, final PooledObject<VisitTracker<K>> ref) {
44 ref.getObject().destroy();
45 }
46
47 @Override
48 public void destroyObject(final PooledObject<VisitTracker<K>> ref) {
49 ref.getObject().destroy();
50 }
51
52 @Override
53 public PooledObject<VisitTracker<K>> makeObject() {
54 return new DefaultPooledObject<>(new VisitTracker<>(nextId++));
55 }
56
57 @Override
58 public PooledObject<VisitTracker<K>> makeObject(final K key) {
59 return new DefaultPooledObject<>(new VisitTracker<>(nextId++, key));
60 }
61
62 @Override
63 public void passivateObject(final K key, final PooledObject<VisitTracker<K>> ref) {
64 ref.getObject().passivate();
65 }
66
67 @Override
68 public void passivateObject(final PooledObject<VisitTracker<K>> ref) {
69 ref.getObject().passivate();
70 }
71
72 public void resetId() {
73 nextId = 0;
74 }
75
76 @Override
77 public boolean validateObject(final K key, final PooledObject<VisitTracker<K>> ref) {
78 return ref.getObject().validate();
79 }
80
81 @Override
82 public boolean validateObject(final PooledObject<VisitTracker<K>> ref) {
83 return ref.getObject().validate();
84 }
85 }