Package com.ibm.websphere.command
Class CacheableCommandImpl
java.lang.Object
com.ibm.websphere.command.TargetableCommandImpl
com.ibm.websphere.command.CacheableCommandImpl
- All Implemented Interfaces:
com.ibm.websphere.cache.Sizeable
,CacheableCommand
,Command
,CommandCaller
,TargetableCommand
,Serializable
- Direct Known Subclasses:
CacheableCommandImpl
public abstract class CacheableCommandImpl
extends TargetableCommandImpl
implements CacheableCommand, com.ibm.websphere.cache.Sizeable
This CacheableCommandImpl abstract class provides an implementation
for all CacheableCommand interface methods except those that the
command writer must write.
This class provides a runtime for command execution that interacts
with the CommandCache.
It also provides the contract between this command runtime and
the command writer.
CacheableCommandImpl is a super class of all CacheableCommands.
- See Also:
-
Field Summary
Fields inherited from class com.ibm.websphere.command.TargetableCommandImpl
LOCAL
Fields inherited from interface com.ibm.websphere.command.Command
serialVersionUID
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
execute()
This implements the method in the Command interface, overriding the implementation in TargetableCommandImpl.boolean
executeFromCache This method will check the cache to see if the given command is present.Implements the CacheableCommand interface method.com.ibm.websphere.cache.EntryInfo
The gets this command's EntryInfo object, which holds its caching metadata.final String
getId()
This is the method in the CacheableCommand interface.long
final int
This is the method in the CacheableCommand interface.void
Implements the CacheableCommand interface.boolean
This implements the CacheableCommand interface.void
reset()
Reset the command for reuse.void
setCaller
(CommandCaller caller) Implements the CacheableCommand interface method.void
setObjectSize
(long objectSize) void
unionDependencies
(com.ibm.websphere.cache.EntryInfo entryInfo) This is called by the CommandCache to add dependencies to this command.void
This method will cause the current command to be placed into the cache.Methods inherited from class com.ibm.websphere.command.TargetableCommandImpl
getCommandTarget, getCommandTargetName, getTargetPolicy, hasOutputProperties, isReadyToCallExecute, performExecute, setCommandTarget, setCommandTargetName, setHasOutputProperties, setOutputProperties, setTargetPolicy
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.ibm.websphere.command.Command
isReadyToCallExecute
Methods inherited from interface com.ibm.websphere.command.TargetableCommand
getCommandTarget, getCommandTargetName, hasOutputProperties, performExecute, setCommandTarget, setCommandTargetName, setOutputProperties
-
Constructor Details
-
CacheableCommandImpl
public CacheableCommandImpl()
-
-
Method Details
-
getId
This is the method in the CacheableCommand interface. This must be implemented by the command writer.- Specified by:
getId
in interfaceCacheableCommand
- Returns:
- The cache id.
-
getSharingPolicy
public final int getSharingPolicy()This is the method in the CacheableCommand interface. This should be implemented by the command writer only if the default of EntryInfo.SHARED_PULL is not desired.- Specified by:
getSharingPolicy
in interfaceCacheableCommand
- Returns:
- The sharing policy id.
-
preExecute
public boolean preExecute()This implements the CacheableCommand interface. This should be implemented by the command writer only if there is something that needs to be done prior to executing the command on the server.- Specified by:
preExecute
in interfaceCacheableCommand
- Returns:
- True implies that the command's execution should be terminated, so the performExecute, postExecute and setCommand will not happen.
-
postExecute
public void postExecute()Implements the CacheableCommand interface. This should be implemented by the command writer only if there is something that needs to be done after executing the command on the server.- Specified by:
postExecute
in interfaceCacheableCommand
-
execute
This implements the method in the Command interface, overriding the implementation in TargetableCommandImpl.It does the following:
- Throws an UnsetInputPropertiesException if this command's isReadyToCallExecute method returns false.
- Get the CommandTarget for this command from the targetPolicy.
- If it is cached, return the cached command. The command may be cached locally or in the coordinator for the command.
- If it is not cached, call the CommandTargetProxy.executeCommand method to execute the command, which calls the TargetableCommand.performExecute method, and cache it. The command may be run locally or in the coordinator for the command. The command may be cached after execution, depending on the sharing policy.
- If the hasOutputProperties method returns true and the returned command is not the same instance as this command, it calls the setOutputProperties method so that the results will be copied into this command.
- Set the time of execution of the command.
- Specified by:
execute
in interfaceCommand
- Overrides:
execute
in classTargetableCommandImpl
- Throws:
CommandException
- The superclass for all command exceptions.
-
setCaller
Implements the CacheableCommand interface method.- Specified by:
setCaller
in interfaceCacheableCommand
- Parameters:
caller
- The command that called this command.
-
getCaller
Implements the CacheableCommand interface method.- Specified by:
getCaller
in interfaceCacheableCommand
- Returns:
- The caller of the command.
-
unionDependencies
public void unionDependencies(com.ibm.websphere.cache.EntryInfo entryInfo) This is called by the CommandCache to add dependencies to this command.- Specified by:
unionDependencies
in interfaceCommandCaller
- Parameters:
entryInfo
- This command's entryInfo.
-
getEntryInfo
public com.ibm.websphere.cache.EntryInfo getEntryInfo()The gets this command's EntryInfo object, which holds its caching metadata.- Specified by:
getEntryInfo
in interfaceCacheableCommand
- Returns:
- The EntryInfo object.
-
reset
public void reset()Reset the command for reuse.- Specified by:
reset
in interfaceCommand
- Specified by:
reset
in classTargetableCommandImpl
-
executeFromCache
executeFromCache This method will check the cache to see if the given command is present. If so then the command is populated with the cached results and true is returned. If the command is not cached, then false is returned and no change is made to the state of the command.- Specified by:
executeFromCache
in interfaceCacheableCommand
- Returns:
- true if the command was retrieved from cache
- Throws:
CommandException
-
updateCache
public void updateCache()This method will cause the current command to be placed into the cache. Any existing entry with the same cache id will be replaced.- Specified by:
updateCache
in interfaceCacheableCommand
-
getObjectSize
public long getObjectSize()- Specified by:
getObjectSize
in interfacecom.ibm.websphere.cache.Sizeable
-
setObjectSize
public void setObjectSize(long objectSize)
-