/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.struts2.tiles.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Represents a <code><definition></code> element in <code>tiles.xml</code>.
*
* <p>
* With a sample layout in <code>tiles.xml</code> like this:
* <pre>
* <definition name="layout" template="/WEB-INF/tiles/layout.jsp">
* <put-attribute name="header" value=".header"/>
* <put-attribute name="body" value=".body"/>
* </definition>
* </pre>
* </p>
* <p>
* You can annotate an action like that:
* <pre>
* {@literal @}Result(name = "success", type="tiles")
* {@literal @}TilesDefinition(extend = "layout", putAttributes = {
* {@literal @}TilesPutAttribute(name = "header", value = "/WEB-INF/tiles/header.jsp"),
* {@literal @}TilesPutAttribute(name = "body", value = "/WEB-INF/tiles/body.ftl")
* })
* public class FooAction extends ActionSupport {
* </pre>
* </p>
*
*/
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.TYPE })
@Inherited
public @interface TilesDefinition {
String extend() default "";
String name() default "";
String preparer() default "";
String role() default "";
String template() default "";
String templateExpression() default "";
String templateType() default "";
TilesPutAttribute[] putAttributes() default {};
TilesPutListAttribute[] putListAttributes() default {};
}