001/* 002 * Shredzone Commons 003 * 004 * Copyright (C) 2012 Richard "Shred" Körber 005 * http://commons.shredzone.org 006 * 007 * This program is free software: you can redistribute it and/or modify 008 * it under the terms of the GNU Library General Public License as 009 * published by the Free Software Foundation, either version 3 of the 010 * License, or (at your option) any later version. 011 * 012 * This program is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 015 * GNU General Public License for more details. 016 * 017 * You should have received a copy of the GNU Library General Public License 018 * along with this program. If not, see <http://www.gnu.org/licenses/>. 019 */ 020package org.shredzone.commons.taglib.annotation; 021 022import java.lang.annotation.Documented; 023import java.lang.annotation.ElementType; 024import java.lang.annotation.Retention; 025import java.lang.annotation.RetentionPolicy; 026import java.lang.annotation.Target; 027 028/** 029 * Annotates a field of the tag implementation as tag parameter. Those fields will be 030 * filled with the tag parameters before the tag implementation is invoked. 031 * 032 * @author Richard "Shred" Körber 033 */ 034@Target(ElementType.METHOD) 035@Retention(RetentionPolicy.RUNTIME) 036@Documented 037public @interface TagParameter { 038 039 /** 040 * Is the parameter required? Defaults to {@code false}. 041 */ 042 boolean required() default false; 043 044 /** 045 * Is the parameter a rtexpression value? Defaults to {@code true}. 046 */ 047 boolean rtexprvalue() default true; 048 049}