1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.view.facelets.pool.impl;
20
21 import java.lang.ref.WeakReference;
22 import javax.faces.component.UIViewRoot;
23 import org.apache.myfaces.view.facelets.pool.RestoreViewFromPoolResult;
24 import org.apache.myfaces.view.facelets.pool.ViewEntry;
25
26
27
28
29
30 public class WeakViewEntry extends ViewEntry
31 {
32 private WeakReference<UIViewRoot> viewRootRef;
33
34 private UIViewRoot viewRoot;
35
36 private RestoreViewFromPoolResult result;
37
38 public WeakViewEntry(UIViewRoot viewRoot)
39 {
40 this.viewRootRef = new WeakReference<UIViewRoot>(viewRoot);
41 }
42
43 public boolean activate()
44 {
45 viewRoot = viewRootRef.get();
46 viewRootRef = null;
47 return viewRoot != null;
48 }
49
50
51
52
53 public UIViewRoot getViewRoot()
54 {
55 if (viewRootRef != null)
56 {
57 return viewRootRef.get();
58 }
59 return viewRoot;
60 }
61
62
63
64
65 public void setViewRoot(UIViewRoot viewRoot)
66 {
67 this.viewRootRef = new WeakReference<UIViewRoot>(viewRoot);
68 this.viewRoot = null;
69 }
70
71
72
73
74 public RestoreViewFromPoolResult getResult()
75 {
76 return result;
77 }
78
79
80
81
82 public void setResult(RestoreViewFromPoolResult result)
83 {
84 this.result = result;
85 }
86 }