You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ay...@apache.org on 2006/11/14 20:51:50 UTC
svn commit: r474941 - in
/incubator/harmony/enhanced/classlib/trunk/modules/beans/src:
main/java/java/beans/ main/java/org/apache/harmony/beans/internal/nls/
test/java/org/apache/harmony/beans/tests/java/beans/
test/support/java/org/apache/harmony/bean...
Author: ayza
Date: Tue Nov 14 11:51:50 2006
New Revision: 474941
URL: http://svn.apache.org/viewvc?view=rev&rev=474941
Log:
enabling seven tests from IntrospectorTest class
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Introspector.java
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/support/java/org/apache/harmony/beans/tests/support/mock/MockPropertyChangeListener.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Introspector.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Introspector.java?view=diff&rev=474941&r1=474940&r2=474941
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Introspector.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Introspector.java Tue Nov 14 11:51:50 2006
@@ -23,6 +23,9 @@
import java.util.List;
import java.util.Map;
+import org.apache.harmony.beans.internal.nls.Messages;
+
+
public class Introspector {
public static final int USE_ALL_BEANINFO = 1;
@@ -106,12 +109,23 @@
private static BeanInfoWrapper getBeanInfo(Class<?> beanClass,
Class<?> stopClass, boolean ignoreBeanClassBeanInfo,
- boolean ignoreSuperClassBeanInfo) {
+ boolean ignoreSuperClassBeanInfo) throws IntrospectionException {
+ BeanInfoWrapper beanInfoWrapper;
+ BeanInfo beanInfo;
+ BeanInfoImpl beanInfoImpl;
+ BeanInfoWrapper wrapper;
+ Class<?> parent;
+
if (beanClass == null) {
throw new java.lang.NullPointerException();
}
+
+ if (stopClass != null && !stopClass.isAssignableFrom(beanClass)) {
+ throw new IntrospectionException(
+ Messages.getString("beans.4E")); //$NON-NLS-1$
+ }
- BeanInfoWrapper beanInfoWrapper = findBeanInfoClassInCache(beanClass,
+ beanInfoWrapper = findBeanInfoClassInCache(beanClass,
stopClass, ignoreBeanClassBeanInfo, ignoreSuperClassBeanInfo);
if (beanInfoWrapper != null) {
@@ -120,10 +134,12 @@
// find bean info as a separate class
- BeanInfo beanInfo = null;
+ beanInfo = null;
+
if (!ignoreBeanClassBeanInfo) {
try {
Class<?> beanInfoClass = findBeanInfoClass(beanClass);
+
if (beanInfoClass != null) {
beanInfo = (BeanInfo) beanInfoClass.newInstance();
}
@@ -135,14 +151,15 @@
// generate bean info automatically
- BeanInfoImpl beanInfoImpl = new BeanInfoImpl(beanClass);
+ beanInfoImpl = new BeanInfoImpl(beanClass);
// ...
- BeanInfoWrapper wrapper = new BeanInfoWrapper(beanInfo, beanInfoImpl);
+ wrapper = new BeanInfoWrapper(beanInfo, beanInfoImpl);
- Class<?> parent = beanClass.getSuperclass();
- if ((parent != null) && (parent != stopClass)) {
+ parent = beanClass.getSuperclass();
+
+ if (parent != null && parent != stopClass) {
BeanInfoWrapper parentBeanInfo = getBeanInfo(parent, stopClass,
ignoreSuperClassBeanInfo, ignoreSuperClassBeanInfo);
@@ -233,6 +250,7 @@
private static String[] path = { "org.apache.harmony.beans.infos" }; //$NON-NLS-1$
- private static final Map<String, List<BeanInfoData>> beanInfos = new HashMap<String, List<BeanInfoData>>();
+ private static final Map<String, List<BeanInfoData>> beanInfos =
+ new HashMap<String, List<BeanInfoData>>();
}
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties?view=diff&rev=474941&r1=474940&r2=474941
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties Tue Nov 14 11:51:50 2006
@@ -93,3 +93,4 @@
beans.4B=type is null
beans.4C=encoder is null
beans.4D=Invalid method call
+beans.4E=stopClass is not ancestor of beanClass
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java?view=diff&rev=474941&r1=474940&r2=474941
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java Tue Nov 14 11:51:50 2006
@@ -417,9 +417,10 @@
BeanInfo info = Introspector.getBeanInfo(MockFoo.class,
MockFooStop.class);
PropertyDescriptor[] pds = info.getPropertyDescriptors();
- assertEquals(1, pds.length);
- assertEquals("name", pds[0].getName());
- assertEquals(String.class, pds[0].getPropertyType());
+
+ assertEquals(2, pds.length);
+ assertTrue(contains("name", String.class, pds));
+ assertTrue(contains("complexLabel", MockFooLabel.class, pds));
}
public void testGetBeanInfoClassClass_Method()
@@ -427,11 +428,12 @@
BeanInfo info = Introspector.getBeanInfo(MockFoo.class,
MockFooStop.class);
MethodDescriptor[] mds = info.getMethodDescriptors();
- assertEquals(2, mds.length);
-
- for (MethodDescriptor element : mds) {
- assertTrue(element.getName().endsWith("Name"));
- }
+
+ assertEquals(4, mds.length);
+ assertTrue(contains("getName", mds));
+ assertTrue(contains("setName", mds));
+ assertTrue(contains("getComplexLabel", mds));
+ assertTrue(contains("setComplexLabel", mds));
}
public void testGetBeanInfoClassClass_StopNull()
@@ -581,11 +583,10 @@
BeanInfo info = Introspector.getBeanInfo(MockFooSub.class,
Introspector.IGNORE_IMMEDIATE_BEANINFO);
EventSetDescriptor[] esds = info.getEventSetDescriptors();
- assertEquals(1, esds.length);
- for (EventSetDescriptor element : esds) {
- String name = element.getName();
- assertEquals("mockPropertyChange.MockFooChildBeanInfo", name);
- }
+
+ assertEquals(2, esds.length);
+ assertTrue(contains("mockPropertyChange", esds));
+ assertTrue(contains("mockPropertyChange.MockFooChildBeanInfo", esds));
}
/*
@@ -641,7 +642,9 @@
BeanInfo info = Introspector.getBeanInfo(MockFooSub.class,
Introspector.IGNORE_ALL_BEANINFO);
EventSetDescriptor[] esds = info.getEventSetDescriptors();
- assertEquals(0, esds.length);
+
+ assertEquals(1, esds.length);
+ assertTrue(contains("mockPropertyChange", esds));
}
/*
@@ -1451,7 +1454,7 @@
}
}
- private void assertBeanInfoEquals(BeanInfo beanInfo, BeanInfo info) {
+ private static void assertBeanInfoEquals(BeanInfo beanInfo, BeanInfo info) {
// compare BeanDescriptor
assertEquals(beanInfo.getBeanDescriptor().getDisplayName(), info
.getBeanDescriptor().getDisplayName());
@@ -1501,6 +1504,43 @@
}
+ private static boolean contains(String propName, Class<?> propClass,
+ PropertyDescriptor[] pds)
+ {
+ for (PropertyDescriptor pd : pds) {
+ if (propName.equals(pd.getName()) &&
+ propClass.equals(pd.getPropertyType())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private static boolean contains(String methodName,
+ MethodDescriptor[] mds)
+ {
+ for (MethodDescriptor md : mds) {
+ if (methodName.equals(md.getName())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private static boolean contains(String methodName,
+ EventSetDescriptor[] esds)
+ {
+ for (EventSetDescriptor esd : esds) {
+ if (methodName.equals(esd.getName())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
/*
* The following classes are used to test introspect properties
*/
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/support/java/org/apache/harmony/beans/tests/support/mock/MockPropertyChangeListener.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/support/java/org/apache/harmony/beans/tests/support/mock/MockPropertyChangeListener.java?view=diff&rev=474941&r1=474940&r2=474941
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/support/java/org/apache/harmony/beans/tests/support/mock/MockPropertyChangeListener.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/support/java/org/apache/harmony/beans/tests/support/mock/MockPropertyChangeListener.java Tue Nov 14 11:51:50 2006
@@ -17,10 +17,12 @@
package org.apache.harmony.beans.tests.support.mock;
+import java.util.EventListener;
+
/**
* TODO Type description
*/
-public interface MockPropertyChangeListener {
+public interface MockPropertyChangeListener extends EventListener {
/*
* fire MockPropertyChange event.
*/