001 /*
002 * ============================================================================
003 * GNU Lesser General Public License
004 * ============================================================================
005 *
006 * Beanlet - JSE Application Container.
007 * Copyright (C) 2006 Leon van Zantvoort
008 *
009 * This library is free software; you can redistribute it and/or
010 * modify it under the terms of the GNU Lesser General Public
011 * License as published by the Free Software Foundation; either
012 * version 2.1 of the License, or (at your option) any later version.
013 *
014 * This library is distributed in the hope that it will be useful,
015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017 * Lesser General Public License for more details.
018 *
019 * You should have received a copy of the GNU Lesser General Public
020 * License along with this library; if not, write to the Free Software
021 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
022 *
023 * Leon van Zantvoort
024 * 243 Acalanes Drive #11
025 * Sunnyvale, CA 94086
026 * USA
027 *
028 * zantvoort@users.sourceforge.net
029 * http://beanlet.org
030 */
031 package org.beanlet.metadata;
032
033 import org.beanlet.MetaData;
034
035 /**
036 * Meta data for operations.
037 *
038 * @see org.beanlet.Operation
039 * @see org.beanlet.event.OperationEvent
040 * @author Leon van Zantvoort
041 */
042 public interface OperationMetaData extends MetaData {
043
044 /**
045 * Returns the operation name.
046 *
047 * @return operation name.
048 */
049 String getOperationName();
050
051 /**
052 * Returns the types of the operation's parameters.
053 *
054 * @return operation parameter types.
055 */
056 Class<?>[] getParameterTypes();
057
058 /**
059 * Return type of the operation.
060 *
061 * @return return type of the operation.
062 */
063 Class<?> getReturnType();
064
065 /**
066 * Returns the attribute name if the operation is exposed as JavaBean
067 * method, {@code null} otherwise.
068 *
069 * @return attribute name if the operation is exposed as JavaBean method,
070 * {@code null} otherwise.
071 */
072 String getAttributeName();
073
074 /**
075 * Returns {@code true} if the operation is exposed as a JavaBean getter-
076 * method, {@code null} otherwise.
077 *
078 * @return {@code true} if the operation is exposed as a JavaBean getter-
079 * method, {@code null} otherwise.
080 */
081 boolean isGetter();
082
083 /**
084 * Returns {@code true} if the operation is exposed as a JavaBean setter-
085 * method, {@code null} otherwise.
086 *
087 * @return {@code true} if the operation is exposed as a JavaBean setter-
088 * method, {@code null} otherwise.
089 */
090 boolean isSetter();
091
092 /**
093 * Returns {@code true} if the operation is exposed as a JavaBean boolean-is
094 * method, {@code null} otherwise.
095 *
096 * @return {@code true} if the operation is exposed as a JavaBean boolean-is
097 * method, {@code null} otherwise.
098 */
099 boolean isIs();
100 }