home *** CD-ROM | disk | FTP | other *** search
- package sun.swing;
-
- import [Ljava.lang.Object;;
- import java.awt.Color;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Method;
- import javax.swing.UIDefaults;
- import javax.swing.plaf.ColorUIResource;
-
- public class SwingLazyValue implements UIDefaults.LazyValue {
- private String className;
- private String methodName;
- private Object[] args;
-
- public SwingLazyValue(String var1) {
- this(var1, (String)null);
- }
-
- public SwingLazyValue(String var1, String var2) {
- this(var1, var2, (Object[])null);
- }
-
- public SwingLazyValue(String var1, Object[] var2) {
- this(var1, (String)null, var2);
- }
-
- public SwingLazyValue(String var1, String var2, Object[] var3) {
- this.className = var1;
- this.methodName = var2;
- if (var3 != null) {
- this.args = ((Object;)var3).clone();
- }
-
- }
-
- public Object createValue(UIDefaults var1) {
- try {
- Class var2 = Class.forName(this.className, true, (ClassLoader)null);
- if (this.methodName != null) {
- Class[] var7 = this.getClassArray(this.args);
- Method var8 = var2.getMethod(this.methodName, var7);
- return var8.invoke(var2, this.args);
- } else {
- Class[] var4 = this.getClassArray(this.args);
- Constructor var5 = var2.getConstructor(var4);
- return var5.newInstance(this.args);
- }
- } catch (Exception var6) {
- return null;
- }
- }
-
- private Class[] getClassArray(Object[] var1) {
- Class[] var2 = null;
- if (var1 != null) {
- var2 = new Class[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- if (var1[var3] instanceof Integer) {
- var2[var3] = Integer.TYPE;
- } else if (var1[var3] instanceof Boolean) {
- var2[var3] = Boolean.TYPE;
- } else if (var1[var3] instanceof ColorUIResource) {
- var2[var3] = Color.class;
- } else {
- var2[var3] = var1[var3].getClass();
- }
- }
- }
-
- return var2;
- }
- }
-