View Javadoc

1   /*
2    * $Id: DefinitionTagSupport.java 471754 2006-11-06 14:55:09Z husted $
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  package org.apache.struts.tiles.taglib;
22  
23  import java.io.Serializable;
24  import javax.servlet.jsp.tagext.TagSupport;
25  
26  /**
27   * Common base class for tags dealing with Tiles definitions.
28   * This class defines properties used in Definition Tags.
29   * It also extends TagSupport.
30   */
31  public class DefinitionTagSupport extends TagSupport implements Serializable {
32      /**
33       * Associated Controller type
34       */
35      protected String controllerType;
36      /**
37       * Associated Controller name (classname or url)
38       */
39      protected String controllerName;
40      /**
41       * Role associated to definition.
42       */
43      protected String role;
44      /**
45       * Uri of page assoicated to this definition.
46       */
47      protected String page;
48  
49      /**
50       * Release class properties.
51       */
52      public void release() {
53          super.release();
54          controllerType = null;
55          controllerName = null;
56          role = null;
57          page = null;
58      }
59  
60      /**
61       * Get controller type.
62       * Type can be 'classname', 'url'.
63       *
64       * @return Controller type.
65       */
66      public String getControllerType() {
67          return controllerType;
68      }
69  
70      /**
71       * Get controller name.
72       * Name denotes a fully qualified classname, or an url.
73       * Exact type can be specified with {@link #setControllerType}.
74       *
75       * @return Controller name.
76       */
77      public String getControllerName() {
78          return controllerName;
79      }
80  
81      /**
82       * Set associated controller type.
83       * Type denotes a fully qualified classname.
84       *
85       * @param controllerType Type of associated controller.
86       */
87      public void setControllerType(String controllerType) {
88          this.controllerType = controllerType;
89      }
90  
91      /**
92       * Set associated controller name.
93       * Name denotes a fully qualified classname, or an url.
94       * Exact type can be specified with {@link #setControllerType}.
95       *
96       * @param controller Controller classname or url.
97       */
98      public void setController(String controller) {
99          setControllerName(controller);
100     }
101 
102     /**
103      * Set associated controller name.
104      * Name denote a fully qualified classname, or an url.
105      * Exact type can be specified with setControllerType.
106      *
107      * @param controller Controller classname or url
108      */
109     public void setControllerName(String controller) {
110         this.controllerName = controller;
111     }
112 
113     /**
114      * Set associated controller name as an url, and controller
115      * type as "url".
116      * Name must be an url (not checked).
117      * Convenience method.
118      *
119      * @param controller Controller url
120      */
121     public void setControllerUrl(String controller) {
122         setControllerName(controller);
123         setControllerType("url");
124     }
125 
126     /**
127      * Set associated controller name as a classtype and controller
128      * type as "classname".
129      * Name denotes a fully qualified classname.
130      * Convenience method.
131      *
132      * @param controller Controller classname.
133      */
134     public void setControllerClass(String controller) {
135         setControllerName(controller);
136         setControllerType("classname");
137     }
138 
139     /**
140      * Get associated role.
141      *
142      * @return Associated role.
143      */
144     public String getRole() {
145         return role;
146     }
147 
148     /**
149      * Set associated role.
150      *
151      * @param role Associated role.
152      */
153     public void setRole(String role) {
154         this.role = role;
155     }
156 
157     /**
158      * Set the page.
159      *
160      * @param page Page.
161      */
162     public void setPage(String page) {
163         this.page = page;
164     }
165 
166     /**
167      * Get the page.
168      *
169      * @return Page.
170      */
171     public String getPage() {
172         return page;
173     }
174 
175     /**
176      * Get the template.
177      * Same as getPage().
178      *
179      * @return Template.
180      */
181     public String getTemplate() {
182         return page;
183     }
184 
185     /**
186      * Set the template.
187      * Same as setPage().
188      *
189      * @param template Template.
190      */
191     public void setTemplate(String template) {
192         this.page = template;
193     }
194 }