You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2011/11/02 23:32:50 UTC
svn commit: r1196844 -
/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java
Author: jmsnell
Date: Wed Nov 2 22:32:49 2011
New Revision: 1196844
URL: http://svn.apache.org/viewvc?rev=1196844&view=rev
Log:
Support fluent interfaces in the extend proxy...
e.g. if the attached interface uses setters whose return value is the same class, assume that it's a fluent method so calls can be chained...
public interface Foo {
Foo setBar(String bar);
Foo setBaz(String baz);
}
PersonObject p = new PersonObject();
p.extend(Foo.class)
.setBar("abc")
.setBaz("xyz");
p.writeTo(System.out);
Modified:
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java?rev=1196844&r1=1196843&r2=1196844&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java Wed Nov 2 22:32:49 2011
@@ -686,7 +686,8 @@ public class Extra {
if (args.length != 1)
throw new UnsupportedOperationException();
base.setProperty(name,args[0]);
- return null;
+ return method.getReturnType().isAssignableFrom(type) ?
+ obj : null;
} else if (method.getParameterTypes().length == 0) {
return method.getReturnType().cast(base.getProperty(name));
} else {