Java examples for Reflection:Property
Checks whether the property is editable or not.
/** /*ww w.j av a2 s .c om*/ * Copyright (c) 2005-2014 VedantaTree all rights reserved. * * This file is part of ExpressionOasis. * * ExpressionOasis is free software. You can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ExpressionOasis is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE * OR OTHER DEALINGS IN THE SOFTWARE.See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with ExpressionOasis. If not, see <http://www.gnu.org/licenses/>. * * Please consider to contribute any enhancements to upstream codebase. * It will help the community in getting improved code and features, and * may help you to get the later releases with your changes. */ //package com.java2s; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; public class Main { /** * Checks whether the property is editable or not. Generally it checks * whether the mutator is available for this property or not. A property is * editable iff the property mutator is available. * * @param beanClass the class of bean whose property is being inspecting. * @param property the name of property to inspect. * @return Returns <code>true</code> if the property is editable else <code>false</code> * @throws IntrospectionException */ public static final boolean isPropertyEditable(Class beanClass, String property) throws IntrospectionException { // Gets the property descriptor for given property PropertyDescriptor descriptor = getPropertyDescriptor(beanClass, property); return descriptor == null ? false : descriptor.getWriteMethod() != null; } /** * Gets the property descriptor for the property name from given class. * * @param beanClass the class of bean * @param property the name of property. * @return the property descriptor if property name found else return <code>null</code>. * @throws IntrospectionException */ public static final PropertyDescriptor getPropertyDescriptor( Class beanClass, String property) throws IntrospectionException { BeanInfo beanInfo = Introspector.getBeanInfo(beanClass); PropertyDescriptor[] descriptors = beanInfo .getPropertyDescriptors(); int length = descriptors == null ? 0 : descriptors.length; for (int i = 0; i < length; i++) { if (descriptors[i].getDisplayName().equals(property)) { return descriptors[i]; } } return null; } }