You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/05/02 15:06:02 UTC
svn commit: r534445 -
/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
Author: jcompagner
Date: Wed May 2 06:06:01 2007
New Revision: 534445
URL: http://svn.apache.org/viewvc?view=rev&rev=534445
Log:
special thing for matej, getTargetClass method!
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java?view=diff&rev=534445&r1=534444&r2=534445
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/PropertyResolver.java Wed May 2 06:06:01 2007
@@ -133,6 +133,22 @@
setter.setValue(value, converter == null ? new PropertyResolverConverter(Session.get(),
Session.get().getLocale()) : converter);
}
+
+ /**
+ * @param expression
+ * @param object
+ * @return
+ */
+ public final static Class getTargetClass(String expression, Object object)
+ {
+ ObjectAndGetSetter setter = getObjectAndGetSetter(expression, object, true);
+ if (setter == null)
+ {
+ throw new WicketRuntimeException("Null object returned for expression: " + expression
+ + " for getting the target classs of: " + object);
+ }
+ return setter.getTargetClass();
+ }
private static ObjectAndGetSetter getObjectAndGetSetter(final String expression,
final Object object, boolean tryToCreateNull)
@@ -465,6 +481,11 @@
{
return getAndSetter.getValue(value);
}
+
+ public Class getTargetClass()
+ {
+ return getAndSetter.getTargetClass(this.value);
+ }
}
@@ -480,6 +501,11 @@
public Object getValue(final Object object);
/**
+ * @return
+ */
+ public Class getTargetClass(final Object object);
+
+ /**
* @param object
* The object where the new value must be set on.
*
@@ -532,6 +558,14 @@
// map and try to make one of the class if finds?
return null;
}
+
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return null;
+ }
}
private static final class ListGetSet implements IGetAndSet
@@ -586,6 +620,14 @@
// list and try to make one of the class if finds?
return null;
}
+
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return null;
+ }
}
private static final class ArrayGetSet implements IGetAndSet
@@ -634,6 +676,14 @@
}
return value;
}
+
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return object.getClass().getComponentType();
+ }
}
private static final class ArrayLengthGetSet implements IGetAndSet
@@ -666,6 +716,14 @@
{
throw new WicketRuntimeException("Cant get a new value from a length of an array");
}
+
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(java.lang.Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return null;
+ }
}
private static final class ArrayPropertyGetSet implements IGetAndSet
@@ -757,6 +815,14 @@
+ " on object: " + object);
}
}
+
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(java.lang.Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return getMethod.getReturnType();
+ }
/**
* @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#newValue(java.lang.Object)
@@ -929,6 +995,13 @@
return value;
}
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(java.lang.Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return getMethod.getReturnType();
+ }
}
/**
@@ -1002,6 +1075,14 @@
throw new WicketRuntimeException("Error setting field value of field " + field
+ " on object " + object + ", value " + value, ex);
}
+ }
+
+ /**
+ * @see org.apache.wicket.util.lang.PropertyResolver.IGetAndSet#getTargetClass(java.lang.Object)
+ */
+ public Class getTargetClass(Object object)
+ {
+ return field.getType();
}
}
}