All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.servlet.jsp.tagext.TagAttributeInfo Maven / Gradle / Ivy

The newest version!
/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License.  You can
 * obtain a copy of the License at
 * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
 * or packager/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at packager/legal/LICENSE.txt.
 *
 * GPL Classpath Exception:
 * Oracle designates this particular file as subject to the "Classpath"
 * exception as provided by Oracle in the GPL Version 2 section of the License
 * file that accompanied this code.
 *
 * Modifications:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 *
 * Contributor(s):
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 *
 *
 * This file incorporates work covered by the following copyright and
 * permission notice:
 *
 * Copyright 2004 The Apache Software Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package javax.servlet.jsp.tagext;

/**
 * Information on the attributes of a Tag, available at translation time.
 * This class is instantiated from the Tag Library Descriptor file (TLD).
 * 

* Only the information needed to generate code is included here. Other information * like SCHEMA for validation belongs elsewhere. *

* Note from the Expert Group:
* This should have been designed as an interface. Every time we change the TLD, * we need to add a new constructor to this class (not good). * This class should only be instantiated by container implementations * (not by JSP developers). */ public class TagAttributeInfo { /** * "id" is wired in to be ID. There is no real benefit in having it be something else * IDREFs are not handled any differently. */ public static final String ID = "id"; /** * Constructor for TagAttributeInfo. * This class is to be instantiated only from the * TagLibrary code under request from some JSP code that is parsing a * TLD (Tag Library Descriptor). * * @param name The name of the attribute. * @param required If this attribute is required in tag instances. * @param type The name of the type of the attribute. * @param reqTime Whether this attribute holds a request-time Attribute. */ public TagAttributeInfo(String name, boolean required, String type, boolean reqTime) { this.name = name; this.required = required; this.type = type; this.reqTime = reqTime; } /** * JSP 2.0 Constructor for TagAttributeInfo. * This class is to be instantiated only from the * TagLibrary code under request from some JSP code that is parsing a * TLD (Tag Library Descriptor). * * @param name The name of the attribute. * @param required If this attribute is required in tag instances. * @param type The name of the type of the attribute. * @param reqTime Whether this attribute holds a request-time Attribute. * @param fragment Whether this attribute is of type JspFragment * * @since JSP 2.0 */ public TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment) { this( name, required, type, reqTime ); this.fragment = fragment; } /** * JSP 2.1 Constructor for TagAttributeInfo. * This class is to be instantiated only from the * TagLibrary code under request from some JSP code that is parsing a * TLD (Tag Library Descriptor). * * @param name The name of the attribute. * @param required If this attribute is required in tag instances. * @param type The name of the type of the attribute. * @param reqTime Whether this attribute holds a request-time Attribute. * @param fragment Whether this attribute is of type JspFragment * @param description The description of the attribute. * @param deferredValue Whether this attribute is a deferred value. * @param deferredMethod Whether this attribute is a deferred method. * rtexpr or deferred value. * @param expectedTypeName The name of the expected type of this deferred * value (or null if this is not a deferred value). * @param methodSignature The expected method signature of this deferred * method (or null if this is not a deferred method). * * @since JSP 2.1 */ public TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment, String description, boolean deferredValue, boolean deferredMethod, String expectedTypeName, String methodSignature) { this( name, required, type, reqTime, fragment ); this.description = description; this.deferredValue = deferredValue; this.deferredMethod = deferredMethod; this.expectedTypeName = expectedTypeName; this.methodSignature = methodSignature; } /** * The name of this attribute. * * @return the name of the attribute */ public String getName() { return name; } /** * The type (as a String) of this attribute. * *

This method must return "javax.el.ValueExpression" * if isDeferredValue() returns true and * canBeRequestTime() returns false. It * must return "javax.el.MethodExpression" if * isDeferredMethod() returns true. * It must return "java.lang.Object" if * isDeferredValue() returns true and * canBeRequestTime() returns true. *

* * @return the type of the attribute */ public String getTypeName() { return type; } /** * Whether this attribute has been specified in the TLD * as rtexprvalue. If true, this means the attribute * can hold a request-time value. * * @return true if the attribute has been specified in the TLD * as rtexprvalue */ public boolean canBeRequestTime() { return reqTime; } /** * Whether this attribute is required. * * @return if the attribute is required. */ public boolean isRequired() { return required; } /** * Convenience static method that goes through an array of TagAttributeInfo * objects and looks for "id". * * @param a An array of TagAttributeInfo * @return The TagAttributeInfo reference with name "id" */ public static TagAttributeInfo getIdAttribute(TagAttributeInfo a[]) { for (int i=0; itrue
if this attribute is to be passed a * ValueExpression so that expression evaluation * can be deferred. * *

If this method returns true, then * getTypeName() must return * "javax.el.ValueExpression".

* *

The getExpectedType() method can be used to retrieve * the expected type this value expression will be constructed with.

* * @return true if this attribute accepts a deferred value; * false otherwise. * * @since JSP 2.1 */ public boolean isDeferredValue() { return deferredValue; } /** * Returns true if this attribute is to be passed a * MethodExpression so that expression evaluation * can be deferred. * *

If this method returns true, then * getTypeName() must return * "javax.el.MethodExpression".

* *

The getMethodSignature() method can be used to retrieve * the expected method signature this method expression will be * constructed with.

* * @return true if this attribute accepts a deferred method; * false otherwise. * * @since JSP 2.1 */ public boolean isDeferredMethod() { return deferredMethod; } /** * Returns the name of the expected type (as a String) of this * deferred value attribute. * *

This method returns null if * isDeferredValue() returns false.

* * @return the name of the expected type * @since JSP 2.1 */ public String getExpectedTypeName() { return expectedTypeName; } /** * Returns the expected method signature of this deferred method attribute. * *

This method returns null if * isDeferredMethod() returns false.

* * @return the method signature * @since JSP 2.1 */ public String getMethodSignature() { return methodSignature; } /** * Returns a String representation of this TagAttributeInfo, suitable * for debugging purposes. * * @return a String representation of this TagAttributeInfo */ public String toString() { StringBuffer b = new StringBuffer(); b.append("name = "+name+" "); b.append("type = "+type+" "); b.append("reqTime = "+reqTime+" "); b.append("required = "+required+" "); b.append("fragment = "+fragment+" "); b.append("deferredValue = "+deferredValue+" "); b.append("deferredMethod = "+deferredMethod+" "); b.append("expectedTypeName = "+expectedTypeName+" "); b.append("methodSignature = "+methodSignature+" "); return b.toString(); } /* * private fields */ private String name; private String type; private boolean reqTime; private boolean required; /* * private fields for JSP 2.0 */ private boolean fragment; /* * private fields for JSP 2.1 */ private boolean deferredValue; private boolean deferredMethod; private String expectedTypeName; private String methodSignature; private String description; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy