Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/***********************************************************************************************************************
*
* These Foolish Things - Miscellaneous utilities
* Copyright (C) 2009-2012 by Tidalwave s.a.s. (http://www.tidalwave.it)
*
***********************************************************************************************************************
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
***********************************************************************************************************************
*
* WWW: http://thesefoolishthings.java.net
* SCM: https://bitbucket.org/tidalwave/thesefoolishthings-src
*
**********************************************************************************************************************/
package it.tidalwave.beans;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.beans.Introspector;
import java.beans.IntrospectionException;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyDescriptor;
import java.beans.VetoableChangeSupport;
import java.util.Arrays;
import java.util.Collection;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
import javax.swing.SwingUtilities;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import org.jdesktop.beansbinding.BeanProperty;
import org.jdesktop.beansbinding.Property;
import it.tidalwave.beans.AbstractEnhancer.PropertyFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/*******************************************************************************
*
* Thanks to [email protected], [email protected] for contributing the
* base code.
*
* @author [email protected]
* @author [email protected]
* @author Fabrizio Giudici
* @version $Id$
* @experimental
*
******************************************************************************/
public class JavaBeanAspect
extends JavaBeanSupport
implements MethodInterceptor, JavaBean
{
private static final Logger log = LoggerFactory.getLogger(JavaBeanAspect.class);
private static final String SET_PREFIX = "set";
private static final List javaBeanMethods = Arrays.asList(JavaBean.class.getMethods());
protected final Object bean;
/** A map used for replacing inner enhanced beans. Note that an IdentityHashMap
* is mandatory here, as we don't want to compare them through equals(). */
private final Map