org.apache.tapestry.services.impl
Class EngineServiceOuterProxy

java.lang.Object
  extended by org.apache.tapestry.services.impl.EngineServiceOuterProxy
All Implemented Interfaces:
Serializable, IEngineService

public class EngineServiceOuterProxy
extends Object
implements IEngineService, Serializable

Outer proxy for engine services. The inner proxy resolves the engine service name to a engine service implementation and installed it into the outer proxy as a delegate. Although HiveMind does provide a similar system of inner and outer delegates, Tapestry's engine-service: EngineServiceObjectProvider object provider can cause exceptions (recurive service build) when attempting to link two services together. This extra layer of proxying resolves that issue.

Since:
4.0
Author:
Howard M. Lewis Ship
See Also:
Serialized Form

Constructor Summary
EngineServiceOuterProxy(String serviceName)
           
 
Method Summary
 ILink getLink(boolean post, Object parameter)
          Builds a URL for a service.
 String getName()
          Returns the name of the service.
 void service(IRequestCycle cycle)
          Perform the service, interpreting the URL (from the HttpServletRequest) responding appropriately, and rendering a result page.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

EngineServiceOuterProxy

public EngineServiceOuterProxy(String serviceName)
Method Detail

getLink

public ILink getLink(boolean post,
                     Object parameter)
Description copied from interface: IEngineService
Builds a URL for a service. This is performed during the rendering phase of one request cycle and builds URLs that will invoke activity in a subsequent request cycle.

This method changed incompatibly between release 3.0 and release 4.0.

Specified by:
getLink in interface IEngineService
Parameters:
post - if true, then the link will be used for a post (not a get, i.e., for a HTML form); this may affect what information is encoded into the link
parameter - An object that provide any additional information needed by the service. Each service implementation will expect that an object of the proper type be passed in. In some cases, a simple String will do; in others, a specific object (possibly implementing an interface) will be required.
Returns:
The URL for the service. The URL will have to be encoded via HttpServletResponse.encodeURL(java.lang.String).

service

public void service(IRequestCycle cycle)
             throws IOException
Description copied from interface: IEngineService
Perform the service, interpreting the URL (from the HttpServletRequest) responding appropriately, and rendering a result page.

Specified by:
service in interface IEngineService
Parameters:
cycle - the incoming request
Throws:
IOException

getName

public String getName()
Description copied from interface: IEngineService
Returns the name of the service.

Specified by:
getName in interface IEngineService

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.