com.codemonster.surinam.controller
Class RegisterEntryPointAction

java.lang.Object
  extended by com.codemonster.surinam.controller.RegisterEntryPointAction
All Implemented Interfaces:
Action

public class RegisterEntryPointAction
extends Object
implements Action

This lightweight action object will register a contract.


Constructor Summary
RegisterEntryPointAction()
           
 
Method Summary
 void apply(ServiceBlock serviceBlock)
          This is the primary execution point for all ServiceBlock actions.
 EntryPointBlueprint getEntryPointBlueprint()
           
 String getName()
          We want to be able to discern which operation is being performed by subclasses of this object.
 Iterator<ServiceToFieldInjectionPair> getRequiredServices()
          Get a list of fully qualified Contracts that this action requires.
 void injectServices(ServiceBlock serviceBlock)
          This callback method is used to inject the ServiceBlock that the action will have access to in order to perform its work.
 void setEntryPointBlueprint(EntryPointBlueprint entryPointBlueprint)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegisterEntryPointAction

public RegisterEntryPointAction()
Method Detail

getName

public String getName()
We want to be able to discern which operation is being performed by subclasses of this object.

Specified by:
getName in interface Action
Returns:
Returns the name of the action being performed.

getRequiredServices

public Iterator<ServiceToFieldInjectionPair> getRequiredServices()
Get a list of fully qualified Contracts that this action requires. Contract actions will normally be empty but implementations could have a quite a few.

Specified by:
getRequiredServices in interface Action
Returns:
Returns a list of services, upon which, this service depends.

injectServices

public void injectServices(ServiceBlock serviceBlock)
This callback method is used to inject the ServiceBlock that the action will have access to in order to perform its work. Needless to say, Actions can be supremely powerful and therefore need to be trusted entities. This callback will probably be a NOP for all actions except implementations.

Specified by:
injectServices in interface Action
Parameters:
serviceBlock - The ServiceBlock that the actions will be given access to.

apply

public void apply(ServiceBlock serviceBlock)
           throws MalformedURLException,
                  ClassNotFoundException
This is the primary execution point for all ServiceBlock actions. Not all operations will throw all of these exceptions but we wanted a unified interface for these actions to allow the code to handle a broad ranged of actions and still be able to respond in a fine-grained manner.

Note that if you aren't interested in fine-grained exceptions, all Surinam exceptions extend SurinamException, so you could just trap that along with the Java exceptions separately. Or catching Exception should do the trick.

Specified by:
apply in interface Action
Parameters:
serviceBlock - The ServiceBlock that the actions will be given access to.
Throws:
MalformedURLException - Thrown if one of the classpath segments are malformed.
ClassNotFoundException - Thrown if the FQ class cannot be found on the classpath.

getEntryPointBlueprint

public EntryPointBlueprint getEntryPointBlueprint()

setEntryPointBlueprint

public void setEntryPointBlueprint(EntryPointBlueprint entryPointBlueprint)


Copyright © 2010. All Rights Reserved.