|
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-2003 Sun * Microsystems, Inc. All Rights Reserved. */ /** * Methods for accessing schema2beans objects in a bean-independent way. * * @author Milan Kuchtiak */ package org.netbeans.modules.web.dd.impl.common; import java.lang.reflect.*; import org.openide.util.NbBundle; import org.netbeans.modules.schema2beans.BaseBean; import org.netbeans.api.web.dd.WebApp; import org.netbeans.api.web.dd.ServiceRef; import org.netbeans.api.web.dd.common.CommonDDBean; /** * Methods for accessing schema2beans objects in bean-independent and version-independent way. * * @author Milan Kuchtiak */ public class CommonDDAccess { public static final String SERVLET_2_3 = "2_3"; //NOI18N public static final String SERVLET_2_4 = "2_4"; //NOI18N public static final String PACKAGE_PREFIX = "org.netbeans.modules.web.dd.impl.model_"; //NOI18N public static final String DOT = "."; //NOI18N /** * Return a new instance of the specified type * * @param parent parent bean * @param beanName which bean to create * @param version "2_3" or "2_4" * @return BaseBean object e.g. Servlet */ public static BaseBean newBean(CommonDDBean parent, String beanName, String version) throws ClassNotFoundException { beanName = getImplementationBeanName(parent, beanName, version); try { Class beanClass = Class.forName( PACKAGE_PREFIX + version + DOT + beanName); return (BaseBean) beanClass.newInstance(); } catch (Exception e) { if (e instanceof ClassNotFoundException) throw (ClassNotFoundException)e; else { // This is a programming error. e.printStackTrace(); throw new RuntimeException( NbBundle.getMessage(CommonDDAccess.class, "MSG_COMMONDDACCESS_ERROR", "newBean", ", version = " + version + ", beanName = " + beanName, e+ ": " +e.getMessage())); } } } public static void addBean(CommonDDBean parent, CommonDDBean child, String beanName, String version) { beanName = getImplementationBeanName(parent, beanName, version); try { Class p = parent.getClass(); Class ch = Class.forName("org.netbeans.api.web.dd."+beanName); //NOI18N Method setter=null; try { setter = p.getMethod("set" + beanName, new Class[]{ch}); //NOI18N setter.invoke(parent, new Object[]{child}); } catch (NoSuchMethodException ex) { } if (setter==null) { setter = p.getMethod("add" + getNameForMethod(parent, beanName), new Class[]{ch}); //NOI18N setter.invoke(parent, new Object[]{child}); } } catch (Exception e) { // This is a programming error. e.printStackTrace(); throw new RuntimeException( NbBundle.getMessage(CommonDDAccess.class, "MSG_COMMONDDACCESS_ERROR", "addBean", ", version = " + version + ", beanName = " + beanName, e+ ": " +e.getMessage())); } } /** * Get a BaseBean object from parent BaseBean * * @param parent parent BaseBean * @param beanProperty name of child's BaseBean object e.g. "Servlet" * @param nameProperty name of property e.g. ServletName * @param value e.g. "ControllerServlet" */ public static BaseBean findBeanByName(BaseBean parent, String beanProperty, String nameProperty, String value) { Class c = parent.getClass(); Method getter; Object result; try { getter = c.getMethod("get" + getNameForMethod((CommonDDBean)parent,beanProperty), null); //NOI18N result = getter.invoke(parent, null); if (result == null) { return null; } else if (result instanceof BaseBean) { return null; } else { BaseBean[] beans = (BaseBean[]) result; for (int i=0;i |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.