public abstract class SessionedTask<R>
extends java.lang.Object
implements java.util.concurrent.Callable<R>
Each sessioned task operates within a transaction. If the task is a read-only task it will still be executed in a transaction but the transaction will be marked as read-only.
Multiple tasks can be combined and executed as if they are one task using CompTask
or by using the convenience method doExecute(com.bea.wli.config.ConfigService, String, boolean, java.util.List,TaskDescription)
.
A task does not contain state information. Therefore it can be created once and can be executed many times without being affected by the prior executions.
A task is executed by calling its doExecute(ConfigService, String, boolean)
method. However most tasks also provide a convenience static method that takes the relevant arguments and execute that task.
A task can optionally return a result. Normally the tasks return resources or other information that may be considered internal and is of no value to the user. The caller can cause this kind of internal information to be removed by pasing a sanitize flag.
Modifier | Constructor and Description |
---|---|
protected |
SessionedTask(boolean requiresSystemTransaction, boolean readOnly, TaskDescription description)
Constructor
|
protected |
SessionedTask(boolean requiresSystemTransaction, boolean readOnly, TransactionPriority priority, TaskDescription description)
Constructor
|
protected |
SessionedTask(boolean readOnly, java.lang.String description)
Constructor
|
protected |
SessionedTask(boolean readOnly, TaskDescription description)
Constructor
|
Modifier and Type | Method and Description |
---|---|
protected abstract R |
_execute()
Subclasses implement this method
|
protected void |
assertExists(Ref ref) |
protected static void |
assertLocation(Ref ref) |
protected static void |
assertNONResource(Ref ref) |
protected void |
assertNotExists(Ref ref) |
protected static void |
assertNotLocationData(Ref ref) |
protected static void |
assertNotNull(java.lang.String name, java.lang.Object o) |
protected static void |
assertNotNullElement(java.lang.String name, java.util.Collection c) |
protected static void |
assertResource(Ref ref) |
protected void |
assertSimple(Ref ref) |
R |
call() |
R |
doExecute(ConfigService cs)
Executes the task.
|
R |
doExecute(ConfigService cs, java.lang.String session, boolean sanitizeResult)
Executes the task.
|
R |
doExecute(ConfigService cs, java.lang.String session, boolean execAsSystemTransaction, boolean sanitizeResult)
Executes the task.
|
static java.lang.Object |
doExecute(ConfigService configService, java.lang.String session, boolean sanitizeResult, java.util.List<SessionedTask> tasks, TaskDescription desc)
Executes a list of tasks
|
protected java.util.Set<Ref> |
expand(java.util.Collection<Ref> initialSet) |
protected ConfigContextImpl |
getConfigContext() |
protected ConfigMBean |
getConfigMBean() |
protected ConfigService |
getConfigService() |
TaskDescription |
getDescription()
Returns the description of the task
|
protected java.lang.String |
getSession() |
protected boolean |
isLocation(Ref ref) |
boolean |
isReadOnlyTransaction()
Returns whether this is a read only transaction.
|
boolean |
requiresSystemTransaction()
Returns true if this task requires a system transaction
|
protected SessionedTask(boolean readOnly, java.lang.String description)
readOnly
- true if the task is read only; false otherwisedescription
- description of the taskprotected SessionedTask(boolean readOnly, TaskDescription description)
readOnly
- true if the task is read only; false otherwisedescription
- description of the taskprotected SessionedTask(boolean requiresSystemTransaction, boolean readOnly, TaskDescription description)
requiresSystemTransaction
- true if task must be executed in system transaction; false otherwisereadOnly
- true if the task is read only; false otherwisedescription
- description of the taskprotected SessionedTask(boolean requiresSystemTransaction, boolean readOnly, TransactionPriority priority, TaskDescription description)
requiresSystemTransaction
- true if task must be executed in system transaction; false otherwisereadOnly
- true if the task is read only; false otherwisepriority
- the transaction priority. A sessioned task cannot have a priority of TransactionPriority.High
.description
- description of the taskpublic boolean isReadOnlyTransaction()
public TaskDescription getDescription()
public boolean requiresSystemTransaction()
protected abstract R _execute() throws java.lang.Exception
java.lang.Exception
public final R doExecute(ConfigService cs) throws java.lang.Exception
cs
- config service to act uponjava.lang.Exception
- if an error occurs executing the task.public final R doExecute(ConfigService cs, java.lang.String session, boolean sanitizeResult) throws java.lang.Exception
cs
- config service to act uponsession
- the session to act uponsanitizeResult
- true if result is to be sanitized; false otherwisejava.lang.Exception
- if an error occurs executing the task.public final R doExecute(ConfigService cs, java.lang.String session, boolean execAsSystemTransaction, boolean sanitizeResult) throws java.lang.Exception
cs
- config service to act uponsession
- the session to act uponexecAsSystemTransaction
- forces execution as system transaction whether required or notsanitizeResult
- true if result is to be sanitized; false otherwisejava.lang.Exception
- if an error occurs executing the task.public static java.lang.Object doExecute(ConfigService configService, java.lang.String session, boolean sanitizeResult, java.util.List<SessionedTask> tasks, TaskDescription desc) throws java.lang.Exception
configService
- the config service instancesession
- the session to act onsanitizeResult
- true if the result is to be sanitized; false otherwisetasks
- the tasks to executedesc
- description of the set of tasksjava.lang.Exception
- if an error occurs executing a taskprotected final java.lang.String getSession()
protected final ConfigService getConfigService()
protected final ConfigContextImpl getConfigContext()
protected final ConfigMBean getConfigMBean()
protected final boolean isLocation(Ref ref)
protected final void assertExists(Ref ref) throws NotFoundException
NotFoundException
protected final void assertNotExists(Ref ref) throws AlreadyExistsException
AlreadyExistsException
protected final void assertSimple(Ref ref) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected static void assertLocation(Ref ref) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected static void assertResource(Ref ref) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected static void assertNONResource(Ref ref) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected static void assertNotLocationData(Ref ref) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected static void assertNotNull(java.lang.String name, java.lang.Object o) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected static void assertNotNullElement(java.lang.String name, java.util.Collection c) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected java.util.Set<Ref> expand(java.util.Collection<Ref> initialSet) throws NotFoundException
NotFoundException