Thanks so much, Steve! That worked! I am no longer org.frustrated =)
Danny
Steve Shucker wrote:
I think this is what you're trying to do, but I haven't tested it. The key
bit is the <construct class=...> references a factory class instead of what
the factory should generate. If this works, the general solution is to make
the factory take a "className" and "constructorArgument" property and use
reflection in the createStateObject method. At least that serves a broad
enough purpose to disguise the fact that it's an ugly kludge.
-Steve
<service-point id="BooleanFactory"
interface="org.apache.tapestry.engine.state.StateObjectFactory">
<invoke-factory>
<construct class="org.frustrated.BooleanFactory">
<set property="booleanState" value="false"/>
</construct>
</invoke-factory>
</service-point>
public class BooleanFactory implements StateObjectFactory {
private booleanState;
public Boolean getBooleanState() {
return booleanState;
}
public void setBooleanState(boolean booleanState) {
This.booleanState = booleanState;
}
public Object createStateObject() {
return new Boolean(booleanState);
}
}
-----Original Message-----
From: Danny Mandel [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 01, 2006 2:52 PM
To: Tapestry users
Subject: Re: How to pass a parameter to an ASO constructor?
Ping? Short story is that I'm attempting to pass a constructor argument
(in this case, the boolean false) when creating my ASO.
I've continued searching for this and am still stuck. The closest thing
I found on the wiki and attempted to adapt to my needs was this:
<contribution configuration-id="tapestry.state.ApplicationObjects">
<state-object name="isToolTryout" scope="session">
<invoke-factory object="service:BooleanFactory"/>
</state-object>
</contribution>
<service-point id="BooleanFactory"
interface="org.apache.tapestry.engine.state.StateObjectFactory">
<invoke-factory>
<construct class="java.lang.Boolean">
<boolean>false</boolean>
</construct>
</invoke-factory>
</service-point>
Which results in the following error when attempting to access the ASO
for the first time:
---------
Unable to construct service org.tolweb.tapestry.BooleanFactory: Instance
factory for service org.tolweb.tapestry.BooleanFactory returned false
which does not implement the
org.apache.tapestry.engine.state.StateObjectFactory interface declared
by the extension point.
---------
I'll happily write up a howto on the wiki if anyone can provide insight
to help this work.
Thanks,
Danny
Hi all,
I'm trying to figure out how to pass a constructor argument when
constructing an ASO. I have a java.lang.Boolean, and it *needs* to
have a parameter passed in the constructor (no empty-arg constructor
exists). I know this ought to be simple, but I don't see any
documentation explaining the proper way to do this. This current way
doesn't work:
<state-object name="isToolTryout" scope="session">
<invoke-factory service-id="hivemind.BuilderFactory">
<construct class="java.lang.Boolean">
<boolean>false</boolean>
</construct>
</invoke-factory>
</state-object>
Any hints would be greatly appreciated.
Thanks,
Danny
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]