01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: * $Header:$
18: */
19: package org.apache.beehive.netui.pageflow.internal;
20:
21: import javax.servlet.ServletContext;
22: import java.lang.reflect.Field;
23: import java.lang.reflect.Modifier;
24:
25: /**
26: * Information that is cached per pageflow class.
27: */
28: public class CachedFacesBackingInfo extends CachedSharedFlowRefInfo {
29: /**
30: * The PageFlowController-initialized member field -- may or may not be present.
31: */
32: private Field _pageFlowMemberField;
33:
34: public CachedFacesBackingInfo(Class facesBackingClass,
35: ServletContext servletContext) {
36: Field[] fields = facesBackingClass.getDeclaredFields();
37: AnnotationReader annReader = AnnotationReader
38: .getAnnotationReader(facesBackingClass, servletContext);
39:
40: for (int i = 0; i < fields.length; i++) {
41: Field field = fields[i];
42:
43: if (annReader.getJpfAnnotation(field, "PageFlowField") != null) {
44: _pageFlowMemberField = field;
45: if (!Modifier.isPublic(_pageFlowMemberField
46: .getModifiers())) {
47: _pageFlowMemberField.setAccessible(true);
48: }
49: }
50: }
51:
52: initSharedFlowFields(annReader, facesBackingClass);
53: }
54:
55: public Field getPageFlowMemberField() {
56: return _pageFlowMemberField;
57: }
58: }
|