|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ /* * ConfigUtils.java * * Created on August 15, 2001, 4:29 PM */ package org.netbeans.modules.j2ee.deployment.config.ui; import org.openide.util.Lookup; import org.openide.ErrorManager; import org.openide.nodes.*; import org.openide.util.actions.*; import org.netbeans.modules.j2ee.deployment.plugins.api.*; import org.netbeans.modules.j2ee.deployment.config.ConfigBeanStorage; import java.lang.reflect.Method; import java.util.*; import java.beans.*; import java.awt.Image; import javax.enterprise.deploy.spi.DConfigBean; /* * @author gfink * @version */ public class ConfigUtils { static Map infoMap = new HashMap(); public static BeanInfo createBeanInfo(Object bean) { BeanInfo info; if (bean == null) { return null; } if(infoMap.containsKey(bean.getClass())) { return (BeanInfo) infoMap.get(bean.getClass()); } try { // Introspector doesn't work! // info = (BeanInfo) Class.forName(bean.getClass().getName() + "BeanInfo").newInstance(); // info = Introspector.getBeanInfo(bean.getClass()/*,ConfigBean.class */); // System.out.println("ConfigUtils.createBeanInfo BeanInfo: " + dConfigBean.getClass().getName() + "BeanInfo"); info = (BeanInfo) bean.getClass().getClassLoader().loadClass(bean.getClass().getName() + "BeanInfo").newInstance(); // System.out.println("Creating info " + info); } catch (/* Introspection */ Exception ie) { // ie.getMessage(); // BeanInfo not found. Must create one? info = new DefaultBeanInfo(bean.getClass()); } infoMap.put(bean.getClass(),info); return info; } // don't do the classloader lookup static BeanInfo createDefaultBeanInfo(Object bean) { BeanInfo info = new DefaultBeanInfo(bean.getClass()); infoMap.put(bean.getClass(),info); return info; } public static Sheet.Set[] createSheets(Object bean) { return null; } public static Sheet.Set createSheet(Object bean) { // System.err.println("Creating sheet for " + bean); Sheet.Set basic = new Sheet.Set(); try { BeanInfo info = null; if (bean instanceof ConfigBeanStorage) { info = createBeanInfo(((ConfigBeanStorage)bean).getConfigBean()); } else { info = createBeanInfo(bean); } if(info == null) return basic; PropertyDescriptor[] descriptors = info.getPropertyDescriptors(); if(descriptors == null) { System.err.println("Beaninfo doesn't have property descriptors for " + bean.getClass() + " info " + info.getClass()); /* BeanInfo defInfo = createDefaultBeanInfo(bean); if(defInfo != null) { info = defInfo; descriptors = info.getPropertyDescriptors(); } */ Node.Property property = ConfigProperty.getBraindead(info.getBeanDescriptor()); basic.put(property); } else for(int i = 0; i < descriptors.length; i++) { if(descriptors[i].isHidden()) continue; if(descriptors[i].getName().equals("xpaths")) continue; if(descriptors[i].getName().equals("standardDDBean")) continue; // System.err.println("Creating property for " + descriptors[i].getName()); DConfigBean dConfigBean = ((ConfigBeanStorage)bean).getConfigBean(); Node.Property property = ConfigProperty.getProperty(dConfigBean,descriptors[i]); // Node.Property property = ConfigProperty.getProperty(bean,descriptors[i]); basic.put(property); } } catch (Exception e) { ErrorManager em = (ErrorManager) Lookup.getDefault().lookup(ErrorManager.class); em.notify(e); } // need some way of returning null if there are no properties in // a set. return basic; } public static Object getBeanPropertyValue(DConfigBean config, String propName) { Class cls = config.getClass(); StringBuffer name = new StringBuffer("get"+propName); //NOI18N name.setCharAt(3,Character.toUpperCase(propName.charAt(0))); try { Method method = cls.getDeclaredMethod(name.toString(), new Class[0]); method.setAccessible (true); return method.invoke(config,new Object[0]); } catch (Exception ex) { org.openide.ErrorManager.getDefault().log(ErrorManager.USER, ex.toString()); } return null; } public static void setBeanPropertyValue(DConfigBean config, String propName, String value) { Class cls = config.getClass(); StringBuffer name = new StringBuffer("set"+propName); //NOI18N name.setCharAt(3,Character.toUpperCase(propName.charAt(0))); try { Method method = cls.getDeclaredMethod(name.toString(), new Class[] { java.lang.String.class }); method.setAccessible (true); method.invoke(config, new Object[] { value }); } catch (Exception ex) { org.openide.ErrorManager.getDefault().log(ErrorManager.USER, ex.toString()); } }} |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.