01: /*
02: * Created on 18 May 2007
03: */
04: package uk.org.ponder.rsf.viewstate.support;
05:
06: import java.util.List;
07:
08: import uk.org.ponder.rsf.viewstate.AnyViewParameters;
09: import uk.org.ponder.rsf.viewstate.ViewParameters;
10: import uk.org.ponder.rsf.viewstate.ViewParamsInterceptor;
11: import uk.org.ponder.util.Logger;
12:
13: public class ViewParamsInterceptorManager implements
14: ViewParamsInterceptor {
15: private List interceptors;
16: private ViewParameters inferred;
17:
18: // This is a list of ViewParamsInterceptor
19: public void setInterceptors(List interceptors) {
20: this .interceptors = interceptors;
21: }
22:
23: public void setViewParameters(ViewParameters inferred) {
24: this .inferred = inferred;
25: }
26:
27: public AnyViewParameters getAdjustedViewParameters() {
28: ViewParameters adjust = (ViewParameters) inferred.get();
29: AnyViewParameters adjusted = adjustViewParameters(adjust);
30: return adjusted == null ? adjust : adjusted;
31: }
32:
33: public AnyViewParameters adjustViewParameters(
34: ViewParameters incoming) {
35: ViewParameters togo = null;
36: if (interceptors != null) {
37: for (int i = 0; i < interceptors.size(); ++i) {
38: ViewParamsInterceptor interceptor = (ViewParamsInterceptor) interceptors
39: .get(i);
40: try {
41: AnyViewParameters newadjust = interceptor
42: .adjustViewParameters(incoming);
43: if (newadjust != null) {
44: if (!(newadjust instanceof ViewParameters)) {
45: return newadjust;
46: } else {
47: togo = (ViewParameters) newadjust;
48: }
49: }
50: } catch (Exception e) {
51: Logger.log
52: .warn("Error adjusting ViewParameters", e);
53: }
54: }
55: }
56: return togo;
57: }
58:
59: }
|