Goes recursively into the interface and gets all defined propertyDescriptors - Java Reflection

Java examples for Reflection:Property

Description

Goes recursively into the interface and gets all defined propertyDescriptors

Demo Code

/*******************************************************************************
 * Copyright (C) 2011 Angelo Zerr <angelo.zerr@gmail.com>, Pascal Leclercq <pascal.leclercq@gmail.com>
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:/*  ww w .  j  a  v a 2  s  . c  o m*/
 *     Angelo ZERR - initial API and implementation
 *     Pascal Leclercq - initial API and implementation
 *******************************************************************************/
//package com.java2s;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;

import java.util.List;

public class Main {


    /**
     * Goes recursively into the interface and gets all defined
     * propertyDescriptors
     * 
     * @param propertyDescriptors
     *            The result list of all PropertyDescriptors the given interface
     *            defines (hierarchical)
     * @param iface
     *            The interface to fetch the PropertyDescriptors
     * @throws IntrospectionException
     */
    private static void getInterfacePropertyDescriptors(
            List propertyDescriptors, Class iface)
            throws IntrospectionException {
        BeanInfo beanInfo = Introspector.getBeanInfo(iface);
        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
        for (int i = 0; i < pds.length; i++) {
            PropertyDescriptor pd = pds[i];
            propertyDescriptors.add(pd);
        }
        Class[] subIntfs = iface.getInterfaces();
        for (int j = 0; j < subIntfs.length; j++) {
            getInterfacePropertyDescriptors(propertyDescriptors,
                    subIntfs[j]);
        }
    }
}

Related Tutorials