Package google.registry.tools
Class MutatingCommand
- java.lang.Object
-
- google.registry.tools.ConfirmingCommand
-
- google.registry.tools.MutatingCommand
-
- All Implemented Interfaces:
Command
- Direct Known Subclasses:
CreatePackagePromotionCommand
,UpdatePackagePromotionCommand
,UpdateTldCommand
public abstract class MutatingCommand extends ConfirmingCommand
AConfirmingCommand
that changes objects in the database.
-
-
Constructor Summary
Constructors Constructor Description MutatingCommand()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
execute()
Performs the command and returns a result description.protected void
flushTransaction()
Subclasses can call this to write out all previously requested entity changes since the last transaction flush in a transaction.protected com.google.common.collect.ImmutableList<ImmutableObject>
getChangedEntities()
Returns the collection of the new entity in theMutatingCommand.EntityChange
.protected abstract void
init()
Initializes the command.protected void
postBatchExecute()
Performs any execution step after each batch.protected java.lang.String
prompt()
Returns the changes that have been staged thus far.protected void
stageEntityChange(ImmutableObject oldEntity, ImmutableObject newEntity)
Stages an entity change that will be applied by execute().-
Methods inherited from class google.registry.tools.ConfirmingCommand
checkExecutionState, dontRunCommand, postExecute, run
-
-
-
-
Method Detail
-
init
protected abstract void init() throws java.lang.Exception
Initializes the command.Subclasses override this method to populate
changedEntitiesMap
with updated entities. The old entity is the key and the new entity is the value; the key is null for newly created entities and the value is null for deleted entities.- Overrides:
init
in classConfirmingCommand
- Throws:
java.lang.Exception
-
execute
protected java.lang.String execute() throws java.lang.Exception
Performs the command and returns a result description.Subclasses can override this method if the command does something besides update entities, such as running a full flow.
- Specified by:
execute
in classConfirmingCommand
- Throws:
java.lang.Exception
-
postBatchExecute
protected void postBatchExecute()
Performs any execution step after each batch.
-
stageEntityChange
protected void stageEntityChange(@Nullable ImmutableObject oldEntity, @Nullable ImmutableObject newEntity)
Stages an entity change that will be applied by execute(). Both ImmutableObject instances must be some version of the same entity with the same key.- Parameters:
oldEntity
- the existing version of the entity, or null to create a new entitynewEntity
- the new version of the entity to save, or null to delete the entity
-
flushTransaction
protected void flushTransaction()
Subclasses can call this to write out all previously requested entity changes since the last transaction flush in a transaction.
-
prompt
protected java.lang.String prompt()
Returns the changes that have been staged thus far.- Overrides:
prompt
in classConfirmingCommand
-
getChangedEntities
protected com.google.common.collect.ImmutableList<ImmutableObject> getChangedEntities()
Returns the collection of the new entity in theMutatingCommand.EntityChange
.
-
-