001: /*
002: * $Id: ELRewriteTagBeanInfo.java 471754 2006-11-06 14:55:09Z husted $
003: *
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021: package org.apache.strutsel.taglib.html;
022:
023: import java.beans.IntrospectionException;
024: import java.beans.PropertyDescriptor;
025: import java.beans.SimpleBeanInfo;
026:
027: import java.util.ArrayList;
028:
029: /**
030: * This is the <code>BeanInfo</code> descriptor for the
031: * <code>org.apache.strutsel.taglib.html.ELRewriteTag</code> class. It is
032: * needed to override the default mapping of custom tag attribute names to
033: * class attribute names. <p> This is because the value of the unevaluated EL
034: * expression has to be kept separately from the evaluated value, which is
035: * stored in the base class. This is related to the fact that the JSP compiler
036: * can choose to reuse different tag instances if they received the same
037: * original attribute values, and the JSP compiler can choose to not re-call
038: * the setter methods, because it can assume the same values are already set.
039: */
040: public class ELRewriteTagBeanInfo extends SimpleBeanInfo {
041: public PropertyDescriptor[] getPropertyDescriptors() {
042: ArrayList proplist = new ArrayList();
043:
044: try {
045: proplist.add(new PropertyDescriptor("action",
046: ELRewriteTag.class, null, "setActionExpr"));
047: } catch (IntrospectionException ex) {
048: }
049:
050: try {
051: proplist.add(new PropertyDescriptor("module",
052: ELRewriteTag.class, null, "setModuleExpr"));
053: } catch (IntrospectionException ex) {
054: }
055:
056: try {
057: proplist.add(new PropertyDescriptor("anchor",
058: ELRewriteTag.class, null, "setAnchorExpr"));
059: } catch (IntrospectionException ex) {
060: }
061:
062: try {
063: proplist.add(new PropertyDescriptor("forward",
064: ELRewriteTag.class, null, "setForwardExpr"));
065: } catch (IntrospectionException ex) {
066: }
067:
068: try {
069: proplist.add(new PropertyDescriptor("href",
070: ELRewriteTag.class, null, "setHrefExpr"));
071: } catch (IntrospectionException ex) {
072: }
073:
074: try {
075: proplist.add(new PropertyDescriptor("name",
076: ELRewriteTag.class, null, "setNameExpr"));
077: } catch (IntrospectionException ex) {
078: }
079:
080: try {
081: proplist.add(new PropertyDescriptor("page",
082: ELRewriteTag.class, null, "setPageExpr"));
083: } catch (IntrospectionException ex) {
084: }
085:
086: try {
087: proplist.add(new PropertyDescriptor("paramId",
088: ELRewriteTag.class, null, "setParamIdExpr"));
089: } catch (IntrospectionException ex) {
090: }
091:
092: try {
093: proplist.add(new PropertyDescriptor("paramName",
094: ELRewriteTag.class, null, "setParamNameExpr"));
095: } catch (IntrospectionException ex) {
096: }
097:
098: try {
099: proplist.add(new PropertyDescriptor("paramProperty",
100: ELRewriteTag.class, null, "setParamPropertyExpr"));
101: } catch (IntrospectionException ex) {
102: }
103:
104: try {
105: proplist.add(new PropertyDescriptor("paramScope",
106: ELRewriteTag.class, null, "setParamScopeExpr"));
107: } catch (IntrospectionException ex) {
108: }
109:
110: try {
111: proplist.add(new PropertyDescriptor("property",
112: ELRewriteTag.class, null, "setPropertyExpr"));
113: } catch (IntrospectionException ex) {
114: }
115:
116: try {
117: proplist.add(new PropertyDescriptor("scope",
118: ELRewriteTag.class, null, "setScopeExpr"));
119: } catch (IntrospectionException ex) {
120: }
121:
122: try {
123: proplist.add(new PropertyDescriptor("transaction",
124: ELRewriteTag.class, null, "setTransactionExpr"));
125: } catch (IntrospectionException ex) {
126: }
127:
128: try {
129: proplist
130: .add(new PropertyDescriptor("useLocalEncoding",
131: ELRewriteTag.class, null,
132: "setUseLocalEncodingExpr"));
133: } catch (IntrospectionException ex) {
134: }
135:
136: PropertyDescriptor[] result = new PropertyDescriptor[proplist
137: .size()];
138:
139: return ((PropertyDescriptor[]) proplist.toArray(result));
140: }
141: }
|