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 */
020
021package org.shredzone.commons.view.annotation;
022
023import java.lang.annotation.Documented;
024import java.lang.annotation.ElementType;
025import java.lang.annotation.Retention;
026import java.lang.annotation.RetentionPolicy;
027import java.lang.annotation.Target;
028
029/**
030 * Annotates a view handler method parameter. The value of a pattern placeholder is passed
031 * to this parameter. If the parameter type is not a String, the value is converted to the
032 * parameter type.
033 *
034 * @author Richard "Shred" Körber
035 */
036@Target(ElementType.PARAMETER)
037@Retention(RetentionPolicy.RUNTIME)
038@Documented
039public @interface PathPart {
040
041    /**
042     * Name of the pattern placeholder.
043     */
044    String value();
045
046}