Author: julien(a)jboss.com
Date: 2007-06-14 19:17:48 -0400 (Thu, 14 Jun 2007)
New Revision: 7427
Added:
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant1.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant2.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant3.java
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstantPublisherBeanTestCase.java
Modified:
trunk/faces/build.xml
trunk/faces/src/main/org/jboss/portal/faces/el/ClassConstantPublisherBean.java
Log:
class constant bean test cases
Modified: trunk/faces/build.xml
===================================================================
--- trunk/faces/build.xml 2007-06-14 22:06:47 UTC (rev 7426)
+++ trunk/faces/build.xml 2007-06-14 23:17:48 UTC (rev 7427)
@@ -232,6 +232,7 @@
<test todir="${test.reports}"
name="org.jboss.portal.test.faces.el.AbstractDynamicBeanTestCase"/>
<test todir="${test.reports}"
name="org.jboss.portal.test.faces.el.SimpleDynamicBeanTestCase"/>
<test todir="${test.reports}"
name="org.jboss.portal.test.faces.el.DelegatingPropertyResolverTestCase"/>
+ <test todir="${test.reports}"
name="org.jboss.portal.test.faces.el.ClassConstantPublisherBeanTestCase"/>
</x-test>
<x-classpath>
<pathelement location="${build.classes}"/>
Modified: trunk/faces/src/main/org/jboss/portal/faces/el/ClassConstantPublisherBean.java
===================================================================
---
trunk/faces/src/main/org/jboss/portal/faces/el/ClassConstantPublisherBean.java 2007-06-14
22:06:47 UTC (rev 7426)
+++
trunk/faces/src/main/org/jboss/portal/faces/el/ClassConstantPublisherBean.java 2007-06-14
23:17:48 UTC (rev 7427)
@@ -30,6 +30,9 @@
import java.lang.reflect.Modifier;
/**
+ * An implementation of <code>DynamicBean</code> which exposes all the fields
on a class which are
+ * public and static. The properties are read only and cannot be modified.
+ *
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
@@ -37,40 +40,56 @@
{
/** . */
+ private static final int PUBLIC_STATIC_MODS = Modifier.STATIC | Modifier.PUBLIC;
+
+ /** The class name. */
private String className;
- /** . */
+ /** The cached entries. */
private volatile Map entries;
+ private static Map getEntries(Class clazz)
+ {
+ Class superClazz = clazz.getSuperclass();
+ Map entries = clazz.getSuperclass() == null ? new HashMap() :
getEntries(superClazz);
+
+ //
+ try
+ {
+ Field[] fields = clazz.getDeclaredFields();
+ for (int i = 0; i < fields.length; i++)
+ {
+ Field field = fields[i];
+ final int modifiers = field.getModifiers();
+ if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers))
+ {
+ Object value = field.get(null);
+ entries.put(field.getName(), value);
+ }
+ }
+ }
+ catch (IllegalAccessException e)
+ {
+ e.printStackTrace();
+ }
+
+ //
+ return entries;
+ }
+
private Map getEntries()
{
if (entries == null)
{
try
{
- Map entries = new HashMap();
Class clazz =
Thread.currentThread().getContextClassLoader().loadClass(className);
- Field[] fields = clazz.getFields();
- for (int i = 0; i < fields.length; i++)
- {
- Field field = fields[i];
- int modifiers = field.getModifiers();
- if ((modifiers & Modifier.STATIC | modifiers & Modifier.PUBLIC) !=
0)
- {
- Object value = field.get(null);
- entries.put(field.getName(), value);
- }
- }
- this.entries = entries;
+ this.entries = getEntries(clazz);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
- catch (IllegalAccessException e)
- {
- e.printStackTrace();
- }
}
return entries;
}
Added: trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant1.java
===================================================================
--- trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant1.java
(rev 0)
+++ trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant1.java 2007-06-14
23:17:48 UTC (rev 7427)
@@ -0,0 +1,67 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.faces.el;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ClassConstant1
+{
+
+ private String PRIVATE_1;
+ private final String PRIVATE_FINAL_1 = "";
+ protected String PROTECTED_1;
+ protected final String PROTECTED_FINAL_1 = "";
+ String PACKAGE_PROTECTED_1;
+ final String PACKAGE_PROTECTED_FINAL_1 = "";
+ public String PUBLIC_1;
+ public final String PUBLIC_FINAL_1 = "";
+
+ static private String STATIC_PRIVATE_1;
+ static private final String STATIC_PRIVATE_FINAL_1 = "";
+ static protected String STATIC_PROTECTED_1;
+ static protected final String STATIC_PROTECTED_FINAL_1 = "";
+ static String STATIC_PACKAGE_PROTECTED_1;
+ static final String STATIC_PACKAGE_PROTECTED_FINAL_1 = "";
+ static public String STATIC_PUBLIC_1 = "CT1_STATIC_PUBLIC_1_VALUE";
+ static public final String STATIC_PUBLIC_FINAL_1 =
"CT1_STATIC_PUBLIC_FINAL_1_VALUE";
+
+ private String PRIVATE_2;
+ private final String PRIVATE_FINAL_2 = "";
+ protected String PROTECTED_2;
+ protected final String PROTECTED_FINAL_2 = "";
+ String PACKAGE_PROTECTED_2;
+ final String PACKAGE_PROTECTED_FINAL_2 = "";
+ public String PUBLIC_2;
+ public final String PUBLIC_FINAL_2 = "";
+
+ static private String STATIC_PRIVATE_2;
+ static private final String STATIC_PRIVATE_FINAL_2 = "";
+ static protected String STATIC_PROTECTED_2;
+ static protected final String STATIC_PROTECTED_FINAL_2 = "";
+ static String STATIC_PACKAGE_PROTECTED_2;
+ static final String STATIC_PACKAGE_PROTECTED_FINAL_2 = "";
+ static public String STATIC_PUBLIC_2 = "CT1_STATIC_PUBLIC_2_VALUE";
+ static public final String STATIC_PUBLIC_FINAL_2 =
"CT1_STATIC_PUBLIC_FINAL_2_VALUE";
+}
Added: trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant2.java
===================================================================
--- trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant2.java
(rev 0)
+++ trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant2.java 2007-06-14
23:17:48 UTC (rev 7427)
@@ -0,0 +1,68 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.faces.el;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ClassConstant2 extends ClassConstant1
+{
+
+ private String PRIVATE_2;
+ private final String PRIVATE_FINAL_2 = "";
+ protected String PROTECTED_2;
+ protected final String PROTECTED_FINAL_2 = "";
+ String PACKAGE_PROTECTED_2;
+ final String PACKAGE_PROTECTED_FINAL_2 = "";
+ public String PUBLIC_2;
+ public final String PUBLIC_FINAL_2 = "";
+
+ static private String STATIC_PRIVATE_2;
+ static private final String STATIC_PRIVATE_FINAL_2 = "";
+ static protected String STATIC_PROTECTED_2;
+ static protected final String STATIC_PROTECTED_FINAL_2 = "";
+ static String STATIC_PACKAGE_PROTECTED_2;
+ static final String STATIC_PACKAGE_PROTECTED_FINAL_2 = "";
+ static public String STATIC_PUBLIC_2 = "CT2_STATIC_PUBLIC_2_VALUE";
+ static public final String STATIC_PUBLIC_FINAL_2 =
"CT2_STATIC_PUBLIC_FINAL_2_VALUE";
+
+ private String PRIVATE_3;
+ private final String PRIVATE_FINAL_3 = "";
+ protected String PROTECTED_3;
+ protected final String PROTECTED_FINAL_3 = "";
+ String PACKAGE_PROTECTED_3;
+ final String PACKAGE_PROTECTED_FINAL_3 = "";
+ public String PUBLIC_3;
+ public final String PUBLIC_FINAL_3 = "";
+
+ static private String STATIC_PRIVATE_3;
+ static private final String STATIC_PRIVATE_FINAL_3 = "";
+ static protected String STATIC_PROTECTED_3;
+ static protected final String STATIC_PROTECTED_FINAL_3 = "";
+ static String STATIC_PACKAGE_PROTECTED_3;
+ static final String STATIC_PACKAGE_PROTECTED_FINAL_3 = "";
+ static public String STATIC_PUBLIC_3 = "CT2_STATIC_PUBLIC_3_VALUE";
+ static public final String STATIC_PUBLIC_FINAL_3 =
"CT2_STATIC_PUBLIC_FINAL_3_VALUE";
+
+}
Added: trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant3.java
===================================================================
--- trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant3.java
(rev 0)
+++ trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstant3.java 2007-06-14
23:17:48 UTC (rev 7427)
@@ -0,0 +1,42 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.faces.el;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ClassConstant3
+{
+ public static final int INT_0 = 0;
+ public static final int INT_1 = 1;
+ public static final int INT_2 = 2;
+ public static final boolean BOOLEAN_TRUE = true;
+ public static final boolean BOOLEAN_FALSE = false;
+ public static final Integer INTEGER_0 = new Integer(0);
+ public static final Integer INTEGER_1 = new Integer(1);
+ public static final Integer INTEGER_2 = new Integer(2);
+ public static final Boolean BOOLEAN_OBJECT_TRUE = Boolean.TRUE;
+ public static final Boolean BOOLEAN_OBJECT_FALSE = Boolean.FALSE;
+ public static final Object OBJECT = new Object();
+}
Added:
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstantPublisherBeanTestCase.java
===================================================================
---
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstantPublisherBeanTestCase.java
(rev 0)
+++
trunk/faces/src/main/org/jboss/portal/test/faces/el/ClassConstantPublisherBeanTestCase.java 2007-06-14
23:17:48 UTC (rev 7427)
@@ -0,0 +1,380 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.faces.el;
+
+import junit.framework.TestCase;
+import org.jboss.portal.faces.el.dynamic.DynamicBean;
+import org.jboss.portal.faces.el.ClassConstantPublisherBean;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ClassConstantPublisherBeanTestCase extends TestCase
+{
+
+ private DynamicBean bean1;
+ private DynamicBean bean2;
+ private DynamicBean bean3;
+
+ protected void setUp() throws Exception
+ {
+ bean1 = new ClassConstantPublisherBean();
+ bean1.setValue("className", ClassConstant1.class.getName());
+ bean2 = new ClassConstantPublisherBean();
+ bean2.setValue("className", ClassConstant2.class.getName());
+ bean3 = new ClassConstantPublisherBean();
+ bean3.setValue("className", ClassConstant3.class.getName());
+ }
+
+ public void testExtendsObject()
+ {
+ assertNull(bean1.getType("PRIVATE_1"));
+ assertNull(bean1.getType("PRIVATE_FINAL_1"));
+ assertNull(bean1.getType("PROTECTED_1"));
+ assertNull(bean1.getType("PROTECTED_FINAL_1"));
+ assertNull(bean1.getType("PACKAGE_PROTECTED_1"));
+ assertNull(bean1.getType("PACKAGE_PROTECTED_FINAL_1"));
+ assertNull(bean1.getType("PUBLIC_1"));
+ assertNull(bean1.getType("PUBLIC_FINAL_1"));
+
+ //
+ assertNull(bean1.getType("STATIC_PRIVATE_1"));
+ assertNull(bean1.getType("STATIC_PRIVATE_FINAL_1"));
+ assertNull(bean1.getType("STATIC_PROTECTED_1"));
+ assertNull(bean1.getType("STATIC_PROTECTED_FINAL_1"));
+ assertNull(bean1.getType("STATIC_PACKAGE_PROTECTED_1"));
+ assertNull(bean1.getType("STATIC_PACKAGE_PROTECTED_FINAL_1"));
+ assertNotNull(bean1.getType("STATIC_PUBLIC_1"));
+ assertNotNull(bean1.getType("STATIC_PUBLIC_FINAL_1"));
+
+ //
+ assertNotNull(bean1.getValue("PRIVATE_1"));
+ assertNotNull(bean1.getValue("PRIVATE_FINAL_1"));
+ assertNotNull(bean1.getValue("PROTECTED_1"));
+ assertNotNull(bean1.getValue("PROTECTED_FINAL_1"));
+ assertNotNull(bean1.getValue("PACKAGE_PROTECTED_1"));
+ assertNotNull(bean1.getValue("PACKAGE_PROTECTED_FINAL_1"));
+ assertNotNull(bean1.getValue("PUBLIC_1"));
+ assertNotNull(bean1.getValue("PUBLIC_FINAL_1"));
+
+ //
+ assertNotNull(bean1.getValue("STATIC_PRIVATE_1"));
+ assertNotNull(bean1.getValue("STATIC_PRIVATE_FINAL_1"));
+ assertNotNull(bean1.getValue("STATIC_PROTECTED_1"));
+ assertNotNull(bean1.getValue("STATIC_PROTECTED_FINAL_1"));
+ assertNotNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_1"));
+ assertNotNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_FINAL_1"));
+ assertNotNull(bean1.getValue("STATIC_PUBLIC_1"));
+ assertNotNull(bean1.getValue("STATIC_PUBLIC_FINAL_1"));
+
+ //
+ assertNull(bean1.getValue("PRIVATE_1").getObject());
+ assertNull(bean1.getValue("PRIVATE_FINAL_1").getObject());
+ assertNull(bean1.getValue("PROTECTED_1").getObject());
+ assertNull(bean1.getValue("PROTECTED_FINAL_1").getObject());
+ assertNull(bean1.getValue("PACKAGE_PROTECTED_1").getObject());
+ assertNull(bean1.getValue("PACKAGE_PROTECTED_FINAL_1").getObject());
+ assertNull(bean1.getValue("PUBLIC_1").getObject());
+ assertNull(bean1.getValue("PUBLIC_FINAL_1").getObject());
+
+ //
+ assertNull(bean1.getValue("STATIC_PRIVATE_1").getObject());
+ assertNull(bean1.getValue("STATIC_PRIVATE_FINAL_1").getObject());
+ assertNull(bean1.getValue("STATIC_PROTECTED_1").getObject());
+ assertNull(bean1.getValue("STATIC_PROTECTED_FINAL_1").getObject());
+ assertNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_1").getObject());
+
assertNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_FINAL_1").getObject());
+ assertEquals("CT1_STATIC_PUBLIC_1_VALUE",
bean1.getValue("STATIC_PUBLIC_1").getObject());
+ assertEquals("CT1_STATIC_PUBLIC_FINAL_1_VALUE",
bean1.getValue("STATIC_PUBLIC_FINAL_1").getObject());
+
+ //
+ assertNull(bean1.getType("PRIVATE_2"));
+ assertNull(bean1.getType("PRIVATE_FINAL_2"));
+ assertNull(bean1.getType("PROTECTED_2"));
+ assertNull(bean1.getType("PROTECTED_FINAL_2"));
+ assertNull(bean1.getType("PACKAGE_PROTECTED_2"));
+ assertNull(bean1.getType("PACKAGE_PROTECTED_FINAL_2"));
+ assertNull(bean1.getType("PUBLIC_2"));
+ assertNull(bean1.getType("PUBLIC_FINAL_2"));
+
+ //
+ assertNull(bean1.getType("STATIC_PRIVATE_2"));
+ assertNull(bean1.getType("STATIC_PRIVATE_FINAL_2"));
+ assertNull(bean1.getType("STATIC_PROTECTED_2"));
+ assertNull(bean1.getType("STATIC_PROTECTED_FINAL_2"));
+ assertNull(bean1.getType("STATIC_PACKAGE_PROTECTED_2"));
+ assertNull(bean1.getType("STATIC_PACKAGE_PROTECTED_FINAL_2"));
+ assertNotNull(bean1.getType("STATIC_PUBLIC_2"));
+ assertNotNull(bean1.getType("STATIC_PUBLIC_FINAL_2"));
+
+ //
+ assertNotNull(bean1.getValue("PRIVATE_2"));
+ assertNotNull(bean1.getValue("PRIVATE_FINAL_2"));
+ assertNotNull(bean1.getValue("PROTECTED_2"));
+ assertNotNull(bean1.getValue("PROTECTED_FINAL_2"));
+ assertNotNull(bean1.getValue("PACKAGE_PROTECTED_2"));
+ assertNotNull(bean1.getValue("PACKAGE_PROTECTED_FINAL_2"));
+ assertNotNull(bean1.getValue("PUBLIC_2"));
+ assertNotNull(bean1.getValue("PUBLIC_FINAL_2"));
+
+ //
+ assertNotNull(bean1.getValue("STATIC_PRIVATE_2"));
+ assertNotNull(bean1.getValue("STATIC_PRIVATE_FINAL_2"));
+ assertNotNull(bean1.getValue("STATIC_PROTECTED_2"));
+ assertNotNull(bean1.getValue("STATIC_PROTECTED_FINAL_2"));
+ assertNotNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_2"));
+ assertNotNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_FINAL_2"));
+ assertNotNull(bean1.getValue("STATIC_PUBLIC_2"));
+ assertNotNull(bean1.getValue("STATIC_PUBLIC_FINAL_2"));
+
+ //
+ assertNull(bean1.getValue("PRIVATE_2").getObject());
+ assertNull(bean1.getValue("PRIVATE_FINAL_2").getObject());
+ assertNull(bean1.getValue("PROTECTED_2").getObject());
+ assertNull(bean1.getValue("PROTECTED_FINAL_2").getObject());
+ assertNull(bean1.getValue("PACKAGE_PROTECTED_2").getObject());
+ assertNull(bean1.getValue("PACKAGE_PROTECTED_FINAL_2").getObject());
+ assertNull(bean1.getValue("PUBLIC_2").getObject());
+ assertNull(bean1.getValue("PUBLIC_FINAL_2").getObject());
+
+ //
+ assertNull(bean1.getValue("STATIC_PRIVATE_2").getObject());
+ assertNull(bean1.getValue("STATIC_PRIVATE_FINAL_2").getObject());
+ assertNull(bean1.getValue("STATIC_PROTECTED_2").getObject());
+ assertNull(bean1.getValue("STATIC_PROTECTED_FINAL_2").getObject());
+ assertNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_2").getObject());
+
assertNull(bean1.getValue("STATIC_PACKAGE_PROTECTED_FINAL_2").getObject());
+ assertEquals("CT1_STATIC_PUBLIC_2_VALUE",
bean1.getValue("STATIC_PUBLIC_2").getObject());
+ assertEquals("CT1_STATIC_PUBLIC_FINAL_2_VALUE",
bean1.getValue("STATIC_PUBLIC_FINAL_2").getObject());
+ }
+
+ public void testExtendsObjectAnotherClass()
+ {
+ assertNull(bean2.getType("PRIVATE_1"));
+ assertNull(bean2.getType("PRIVATE_FINAL_1"));
+ assertNull(bean2.getType("PROTECTED_1"));
+ assertNull(bean2.getType("PROTECTED_FINAL_1"));
+ assertNull(bean2.getType("PACKAGE_PROTECTED_1"));
+ assertNull(bean2.getType("PACKAGE_PROTECTED_FINAL_1"));
+ assertNull(bean2.getType("PUBLIC_1"));
+ assertNull(bean2.getType("PUBLIC_FINAL_1"));
+
+ //
+ assertNull(bean2.getType("STATIC_PRIVATE_1"));
+ assertNull(bean2.getType("STATIC_PRIVATE_FINAL_1"));
+ assertNull(bean2.getType("STATIC_PROTECTED_1"));
+ assertNull(bean2.getType("STATIC_PROTECTED_FINAL_1"));
+ assertNull(bean2.getType("STATIC_PACKAGE_PROTECTED_1"));
+ assertNull(bean2.getType("STATIC_PACKAGE_PROTECTED_FINAL_1"));
+ assertNotNull(bean2.getType("STATIC_PUBLIC_1"));
+ assertNotNull(bean2.getType("STATIC_PUBLIC_FINAL_1"));
+
+ //
+ assertNotNull(bean2.getValue("PRIVATE_1"));
+ assertNotNull(bean2.getValue("PRIVATE_FINAL_1"));
+ assertNotNull(bean2.getValue("PROTECTED_1"));
+ assertNotNull(bean2.getValue("PROTECTED_FINAL_1"));
+ assertNotNull(bean2.getValue("PACKAGE_PROTECTED_1"));
+ assertNotNull(bean2.getValue("PACKAGE_PROTECTED_FINAL_1"));
+ assertNotNull(bean2.getValue("PUBLIC_1"));
+ assertNotNull(bean2.getValue("PUBLIC_FINAL_1"));
+
+ //
+ assertNotNull(bean2.getValue("STATIC_PRIVATE_1"));
+ assertNotNull(bean2.getValue("STATIC_PRIVATE_FINAL_1"));
+ assertNotNull(bean2.getValue("STATIC_PROTECTED_1"));
+ assertNotNull(bean2.getValue("STATIC_PROTECTED_FINAL_1"));
+ assertNotNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_1"));
+ assertNotNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_FINAL_1"));
+ assertNotNull(bean2.getValue("STATIC_PUBLIC_1"));
+ assertNotNull(bean2.getValue("STATIC_PUBLIC_FINAL_1"));
+
+ //
+ assertNull(bean2.getValue("PRIVATE_1").getObject());
+ assertNull(bean2.getValue("PRIVATE_FINAL_1").getObject());
+ assertNull(bean2.getValue("PROTECTED_1").getObject());
+ assertNull(bean2.getValue("PROTECTED_FINAL_1").getObject());
+ assertNull(bean2.getValue("PACKAGE_PROTECTED_1").getObject());
+ assertNull(bean2.getValue("PACKAGE_PROTECTED_FINAL_1").getObject());
+ assertNull(bean2.getValue("PUBLIC_1").getObject());
+ assertNull(bean2.getValue("PUBLIC_FINAL_1").getObject());
+
+ //
+ assertNull(bean2.getValue("STATIC_PRIVATE_1").getObject());
+ assertNull(bean2.getValue("STATIC_PRIVATE_FINAL_1").getObject());
+ assertNull(bean2.getValue("STATIC_PROTECTED_1").getObject());
+ assertNull(bean2.getValue("STATIC_PROTECTED_FINAL_1").getObject());
+ assertNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_1").getObject());
+
assertNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_FINAL_1").getObject());
+ assertEquals("CT1_STATIC_PUBLIC_1_VALUE",
bean2.getValue("STATIC_PUBLIC_1").getObject());
+ assertEquals("CT1_STATIC_PUBLIC_FINAL_1_VALUE",
bean2.getValue("STATIC_PUBLIC_FINAL_1").getObject());
+
+ //
+ assertNull(bean2.getType("PRIVATE_2"));
+ assertNull(bean2.getType("PRIVATE_FINAL_2"));
+ assertNull(bean2.getType("PROTECTED_2"));
+ assertNull(bean2.getType("PROTECTED_FINAL_2"));
+ assertNull(bean2.getType("PACKAGE_PROTECTED_2"));
+ assertNull(bean2.getType("PACKAGE_PROTECTED_FINAL_2"));
+ assertNull(bean2.getType("PUBLIC_2"));
+ assertNull(bean2.getType("PUBLIC_FINAL_2"));
+
+ //
+ assertNull(bean2.getType("STATIC_PRIVATE_2"));
+ assertNull(bean2.getType("STATIC_PRIVATE_FINAL_2"));
+ assertNull(bean2.getType("STATIC_PROTECTED_2"));
+ assertNull(bean2.getType("STATIC_PROTECTED_FINAL_2"));
+ assertNull(bean2.getType("STATIC_PACKAGE_PROTECTED_2"));
+ assertNull(bean2.getType("STATIC_PACKAGE_PROTECTED_FINAL_2"));
+ assertNotNull(bean2.getType("STATIC_PUBLIC_2"));
+ assertNotNull(bean2.getType("STATIC_PUBLIC_FINAL_2"));
+
+ //
+ assertNotNull(bean2.getValue("PRIVATE_2"));
+ assertNotNull(bean2.getValue("PRIVATE_FINAL_2"));
+ assertNotNull(bean2.getValue("PROTECTED_2"));
+ assertNotNull(bean2.getValue("PROTECTED_FINAL_2"));
+ assertNotNull(bean2.getValue("PACKAGE_PROTECTED_2"));
+ assertNotNull(bean2.getValue("PACKAGE_PROTECTED_FINAL_2"));
+ assertNotNull(bean2.getValue("PUBLIC_2"));
+ assertNotNull(bean2.getValue("PUBLIC_FINAL_2"));
+
+ //
+ assertNotNull(bean2.getValue("STATIC_PRIVATE_2"));
+ assertNotNull(bean2.getValue("STATIC_PRIVATE_FINAL_2"));
+ assertNotNull(bean2.getValue("STATIC_PROTECTED_2"));
+ assertNotNull(bean2.getValue("STATIC_PROTECTED_FINAL_2"));
+ assertNotNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_2"));
+ assertNotNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_FINAL_2"));
+ assertNotNull(bean2.getValue("STATIC_PUBLIC_2"));
+ assertNotNull(bean2.getValue("STATIC_PUBLIC_FINAL_2"));
+
+ //
+ assertNull(bean2.getValue("PRIVATE_2").getObject());
+ assertNull(bean2.getValue("PRIVATE_FINAL_2").getObject());
+ assertNull(bean2.getValue("PROTECTED_2").getObject());
+ assertNull(bean2.getValue("PROTECTED_FINAL_2").getObject());
+ assertNull(bean2.getValue("PACKAGE_PROTECTED_2").getObject());
+ assertNull(bean2.getValue("PACKAGE_PROTECTED_FINAL_2").getObject());
+ assertNull(bean2.getValue("PUBLIC_2").getObject());
+ assertNull(bean2.getValue("PUBLIC_FINAL_2").getObject());
+
+ //
+ assertNull(bean2.getValue("STATIC_PRIVATE_2").getObject());
+ assertNull(bean2.getValue("STATIC_PRIVATE_FINAL_2").getObject());
+ assertNull(bean2.getValue("STATIC_PROTECTED_2").getObject());
+ assertNull(bean2.getValue("STATIC_PROTECTED_FINAL_2").getObject());
+ assertNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_2").getObject());
+
assertNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_FINAL_2").getObject());
+ assertEquals("CT2_STATIC_PUBLIC_2_VALUE",
bean2.getValue("STATIC_PUBLIC_2").getObject());
+ assertEquals("CT2_STATIC_PUBLIC_FINAL_2_VALUE",
bean2.getValue("STATIC_PUBLIC_FINAL_2").getObject());
+
+ assertNull(bean2.getType("PRIVATE_3"));
+ assertNull(bean2.getType("PRIVATE_FINAL_3"));
+ assertNull(bean2.getType("PROTECTED_3"));
+ assertNull(bean2.getType("PROTECTED_FINAL_3"));
+ assertNull(bean2.getType("PACKAGE_PROTECTED_3"));
+ assertNull(bean2.getType("PACKAGE_PROTECTED_FINAL_3"));
+ assertNull(bean2.getType("PUBLIC_3"));
+ assertNull(bean2.getType("PUBLIC_FINAL_3"));
+
+ //
+ assertNull(bean2.getType("STATIC_PRIVATE_3"));
+ assertNull(bean2.getType("STATIC_PRIVATE_FINAL_3"));
+ assertNull(bean2.getType("STATIC_PROTECTED_3"));
+ assertNull(bean2.getType("STATIC_PROTECTED_FINAL_3"));
+ assertNull(bean2.getType("STATIC_PACKAGE_PROTECTED_3"));
+ assertNull(bean2.getType("STATIC_PACKAGE_PROTECTED_FINAL_3"));
+ assertNotNull(bean2.getType("STATIC_PUBLIC_3"));
+ assertNotNull(bean2.getType("STATIC_PUBLIC_FINAL_3"));
+
+ //
+ assertNotNull(bean2.getValue("PRIVATE_3"));
+ assertNotNull(bean2.getValue("PRIVATE_FINAL_3"));
+ assertNotNull(bean2.getValue("PROTECTED_3"));
+ assertNotNull(bean2.getValue("PROTECTED_FINAL_3"));
+ assertNotNull(bean2.getValue("PACKAGE_PROTECTED_3"));
+ assertNotNull(bean2.getValue("PACKAGE_PROTECTED_FINAL_3"));
+ assertNotNull(bean2.getValue("PUBLIC_3"));
+ assertNotNull(bean2.getValue("PUBLIC_FINAL_3"));
+
+ //
+ assertNotNull(bean2.getValue("STATIC_PRIVATE_3"));
+ assertNotNull(bean2.getValue("STATIC_PRIVATE_FINAL_3"));
+ assertNotNull(bean2.getValue("STATIC_PROTECTED_3"));
+ assertNotNull(bean2.getValue("STATIC_PROTECTED_FINAL_3"));
+ assertNotNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_3"));
+ assertNotNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_FINAL_3"));
+ assertNotNull(bean2.getValue("STATIC_PUBLIC_3"));
+ assertNotNull(bean2.getValue("STATIC_PUBLIC_FINAL_3"));
+
+ //
+ assertNull(bean2.getValue("PRIVATE_3").getObject());
+ assertNull(bean2.getValue("PRIVATE_FINAL_3").getObject());
+ assertNull(bean2.getValue("PROTECTED_3").getObject());
+ assertNull(bean2.getValue("PROTECTED_FINAL_3").getObject());
+ assertNull(bean2.getValue("PACKAGE_PROTECTED_3").getObject());
+ assertNull(bean2.getValue("PACKAGE_PROTECTED_FINAL_3").getObject());
+ assertNull(bean2.getValue("PUBLIC_3").getObject());
+ assertNull(bean2.getValue("PUBLIC_FINAL_3").getObject());
+
+ //
+ assertNull(bean2.getValue("STATIC_PRIVATE_3").getObject());
+ assertNull(bean2.getValue("STATIC_PRIVATE_FINAL_3").getObject());
+ assertNull(bean2.getValue("STATIC_PROTECTED_3").getObject());
+ assertNull(bean2.getValue("STATIC_PROTECTED_FINAL_3").getObject());
+ assertNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_3").getObject());
+
assertNull(bean2.getValue("STATIC_PACKAGE_PROTECTED_FINAL_3").getObject());
+ assertEquals("CT2_STATIC_PUBLIC_3_VALUE",
bean2.getValue("STATIC_PUBLIC_3").getObject());
+ assertEquals("CT2_STATIC_PUBLIC_FINAL_3_VALUE",
bean2.getValue("STATIC_PUBLIC_FINAL_3").getObject());
+ }
+
+ public void testValues()
+ {
+ assertNotNull(bean3.getValue("INT_0"));
+ assertNotNull(bean3.getValue("INT_1"));
+ assertNotNull(bean3.getValue("INT_2"));
+ assertNotNull(bean3.getValue("BOOLEAN_TRUE"));
+ assertNotNull(bean3.getValue("BOOLEAN_FALSE"));
+ assertNotNull(bean3.getValue("INTEGER_0"));
+ assertNotNull(bean3.getValue("INTEGER_1"));
+ assertNotNull(bean3.getValue("INTEGER_2"));
+ assertNotNull(bean3.getValue("BOOLEAN_OBJECT_TRUE"));
+ assertNotNull(bean3.getValue("BOOLEAN_OBJECT_FALSE"));
+ assertNotNull(bean3.getValue("OBJECT"));
+
+ //
+ assertEquals(new Integer(0), bean3.getValue("INT_0").getObject());
+ assertEquals(new Integer(1), bean3.getValue("INT_1").getObject());
+ assertEquals(new Integer(2), bean3.getValue("INT_2").getObject());
+ assertEquals(Boolean.TRUE, bean3.getValue("BOOLEAN_TRUE").getObject());
+ assertEquals(Boolean.FALSE,
bean3.getValue("BOOLEAN_FALSE").getObject());
+ assertEquals(new Integer(0), bean3.getValue("INTEGER_0").getObject());
+ assertEquals(new Integer(1), bean3.getValue("INTEGER_1").getObject());
+ assertEquals(new Integer(2), bean3.getValue("INTEGER_2").getObject());
+ assertEquals(Boolean.TRUE,
bean3.getValue("BOOLEAN_OBJECT_TRUE").getObject());
+ assertEquals(Boolean.FALSE,
bean3.getValue("BOOLEAN_OBJECT_FALSE").getObject());
+ assertEquals(ClassConstant3.OBJECT,
bean3.getValue("OBJECT").getObject());
+ }
+}