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.proxy; 021 022import javax.annotation.Nonnull; 023import javax.servlet.jsp.tagext.JspTag; 024 025/** 026 * This interface marks the Tag class as proxied tag, and gives access to the target tag 027 * implementation. 028 * 029 * @param <T> 030 * Type of the {@link JspTag} this proxy delegates to 031 * @author Richard "Shred" Körber 032 */ 033public interface ProxiedTag<T extends JspTag> { 034 035 /** 036 * Returns a reference to the target bean this proxy delegates to. 037 * 038 * @return Target bean 039 */ 040 @Nonnull T getTargetBean(); 041 042}