View Javadoc

1   /*
2    * $Id: AddTag.java 421151 2006-07-12 06:07:14Z wsmoak $
3    *
4    * Copyright 1999-2004 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  
20  package org.apache.struts.tiles.taglib;
21  
22  import javax.servlet.jsp.JspException;
23  
24    /***
25     * Add an element to the surrounding list tag.
26     * Same syntax as <code>&lt;put&gt;</code>.
27     */
28  public class AddTag extends PutTag {
29  
30    /***
31     * default constructor
32     */
33    public AddTag() {
34      super();
35    }
36  
37      /***
38       * Call parent tag which must implement AttributeContainer.
39       * @throws JspException If we can't find an appropriate enclosing tag.
40       */
41    protected void callParent() throws JspException
42      {
43              // Get enclosing parent
44      AddTagParent enclosingParent = findEnclosingPutListTagParent();
45      enclosingParent.processNestedTag( this );
46      }
47  
48      /***
49       * Find parent tag which must implement AttributeContainer.
50       * @throws JspException If we can't find an appropriate enclosing tag.
51       */
52    protected AddTagParent findEnclosingPutListTagParent() throws JspException {
53      try
54        {
55        AddTagParent parent = (AddTagParent)findAncestorWithClass(this,AddTagParent.class);
56        if( parent == null )
57          {
58          throw new JspException( "Error - tag add : enclosing tag doesn't accept 'add' tag." );
59          }
60        return parent;
61        }
62       catch( ClassCastException ex )
63        {
64        throw new JspException( "Error - tag add : enclosing tag doesn't accept 'add' tag." , ex);
65        }
66    }
67  }