com.gridsystems.nextgrid.api.pom
Class ServiceImpl

java.lang.Object
  extended by com.gridsystems.nextgrid.api.pom.PemHelper
      extended by com.gridsystems.nextgrid.api.pom.ProcessImpl
          extended by com.gridsystems.nextgrid.api.pom.ServiceImpl
All Implemented Interfaces:
Enactable, java.io.Serializable, java.lang.Cloneable, nextgrid.api.pom.Process, nextgrid.api.pom.Service

public final class ServiceImpl
extends ProcessImpl
implements nextgrid.api.pom.Service

Services are concrete processes, bound to a specific grounding.

Author:
Rodrigo Ruiz
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.gridsystems.nextgrid.api.pom.ProcessImpl
ProcessImpl.ValidationType
 
Field Summary
 
Fields inherited from class com.gridsystems.nextgrid.api.pom.ProcessImpl
DFA_INITIAL_STATE, ENACTOR_LOG
 
Constructor Summary
ServiceImpl()
          Creates a new instance.
 
Method Summary
 void discover(nextgrid.api.env.ProcessEnvironment env)
          
 void doEvaluate(nextgrid.api.env.ProcessEnvironment env)
          Performs the actual actions needed for evaluating this process instance.
protected  void doReset()
          Performs specific reset actions in each subclass.
protected  void doValidate(ProcessImpl.ValidationType type)
          Performs any validation action needed for the process implementation.
 nextgrid.api.pom.Process findProcessById(java.net.URI id)
          
 nextgrid.api.pom.Grounding getGrounding()
          
 void prioritise(nextgrid.api.env.ProcessEnvironment env, java.util.PriorityQueue<nextgrid.api.pom.Process> queue)
          
protected  void resetChildren()
          Resets any child process.
 void run(ProcessContext ctx)
          Performs the actual enaction of a process.
 void setGrounding(nextgrid.api.pom.Grounding g)
          
 java.lang.String toString()
          
 
Methods inherited from class com.gridsystems.nextgrid.api.pom.ProcessImpl
attachListeners, copy, enact, evaluate, evaluate, findRoot, getAttribute, getAttribute, getAttribute, getAttributes, getDescription, getId, getInput, getInputs, getInputs, getInputType, getName, getOutput, getOutputs, getOutputs, getOutputType, getParent, getState, getUsedInputNames, getUsedOutputNames, invalidate, isEvaluated, isLazy, isValidated, prioritise, putInput, putOutput, removeInput, removeOutput, reset, setAttribute, setAttribute, setDescription, setEvaluated, setId, setLazy, setName, setParent, setState, unuseInput, unuseOutput, useInput, useOutput, validate, waitForInputs
 
Methods inherited from class com.gridsystems.nextgrid.api.pom.PemHelper
addListener, fireDiscovererSelected, fireDiscoveryFailed, fireDiscoveryFinished, fireDiscoveryStarting, fireEvent, fireProcessEvaluated, fireProcessFailed, fireProcessFailed, fireProcessFinished, fireProcessFinished, fireProcessSelected, fireProcessStarted, removeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface nextgrid.api.pom.Process
addListener, copy, enact, evaluate, findRoot, getAttribute, getAttribute, getAttribute, getAttributes, getDescription, getId, getInput, getInputs, getInputType, getName, getOutput, getOutputs, getOutputType, getParent, getUsedInputNames, getUsedOutputNames, invalidate, isEvaluated, isLazy, isValidated, putInput, putOutput, removeInput, removeListener, removeOutput, reset, setAttribute, setAttribute, setDescription, setId, setLazy, setName, setParent, unuseInput, unuseOutput, useInput, useOutput, validate
 

Constructor Detail

ServiceImpl

public ServiceImpl()
Creates a new instance.

Method Detail

findProcessById

public nextgrid.api.pom.Process findProcessById(java.net.URI id)

Specified by:
findProcessById in interface nextgrid.api.pom.Process

prioritise

public void prioritise(nextgrid.api.env.ProcessEnvironment env,
                       java.util.PriorityQueue<nextgrid.api.pom.Process> queue)

Specified by:
prioritise in interface nextgrid.api.pom.Process

discover

public void discover(nextgrid.api.env.ProcessEnvironment env)

Specified by:
discover in interface nextgrid.api.pom.Process

doValidate

protected void doValidate(ProcessImpl.ValidationType type)
                   throws nextgrid.api.pom.ProcessException
Performs any validation action needed for the process implementation.

Specified by:
doValidate in class ProcessImpl
Parameters:
type - Specifies when this validation is being invoked
Throws:
nextgrid.api.pom.ProcessException - If the validation fails

getGrounding

public nextgrid.api.pom.Grounding getGrounding()

Specified by:
getGrounding in interface nextgrid.api.pom.Service

setGrounding

public void setGrounding(nextgrid.api.pom.Grounding g)

Specified by:
setGrounding in interface nextgrid.api.pom.Service

doEvaluate

public void doEvaluate(nextgrid.api.env.ProcessEnvironment env)
                throws nextgrid.api.pom.ProcessException
Performs the actual actions needed for evaluating this process instance.

Specified by:
doEvaluate in class ProcessImpl
Parameters:
env - The process environment
Throws:
nextgrid.api.pom.ProcessException - If an error occurs

run

public void run(ProcessContext ctx)
         throws nextgrid.api.pom.ProcessException,
                java.lang.InterruptedException
Performs the actual enaction of a process.

The instance must take into account possible errors, like service unavailability, or execution errors. As long as there are more "valid" candidates for the process, errors should not be propagated to the parent, and the next candidate should be selected and enacted.

A ProcessException as a result of this call means that this process is unable to correctly finish its execution, and that the parent must do something to fix the problem.

Specified by:
run in interface Enactable
Parameters:
ctx - A process context
Throws:
nextgrid.api.pom.ProcessException - If an unrecoverable local error occurs
java.lang.InterruptedException - If the thread is interrupted

doReset

protected void doReset()
Performs specific reset actions in each subclass.

Specified by:
doReset in class ProcessImpl

resetChildren

protected void resetChildren()
Resets any child process.

Specified by:
resetChildren in class ProcessImpl

toString

public java.lang.String toString()

Overrides:
toString in class java.lang.Object


Copyright © 2006-2008 Grid Systems, S.A.. All Rights Reserved.