T - the type of aggregate this handler handles commands forpublic class AggregateAnnotationCommandHandler<T extends AggregateRoot> extends Object implements Subscribable, CommandHandler<Object>
CommandHandler
annotations on an aggregate. Those annotations may appear on methods, in which case a specific aggregate instance
needs to be targeted by the command, or on the constructor. The latter will create a new Aggregate instance, which
is then stored in the repository.| Constructor and Description |
|---|
AggregateAnnotationCommandHandler(Class<T> aggregateType,
Repository<T> repository)
Initializes an AnnotationCommandHandler based on the annotations on given
aggregateType, using the
given repository to add and load aggregate instances. |
AggregateAnnotationCommandHandler(Class<T> aggregateType,
Repository<T> repository,
CommandBus commandBus)
Deprecated.
Use
AggregateAnnotationCommandHandler(Class, org.axonframework.repository.Repository)
and subscribe the adapter to the command bus using
CommandBus.subscribe(String,
org.axonframework.commandhandling.CommandHandler). Alternatively, use
subscribe(Class, org.axonframework.repository.Repository, org.axonframework.commandhandling.CommandBus). |
AggregateAnnotationCommandHandler(Class<T> aggregateType,
Repository<T> repository,
CommandBus commandBus,
CommandTargetResolver commandTargetResolver)
Deprecated.
Use
AggregateAnnotationCommandHandler(Class, org.axonframework.repository.Repository,
org.axonframework.commandhandling.CommandTargetResolver) and subscribe the handler to the command
bus using CommandBus.subscribe(String,
org.axonframework.commandhandling.CommandHandler). Alternatively, use
subscribe(Class, org.axonframework.repository.Repository, org.axonframework.commandhandling.CommandBus,
org.axonframework.commandhandling.CommandTargetResolver). |
AggregateAnnotationCommandHandler(Class<T> aggregateType,
Repository<T> repository,
CommandTargetResolver commandTargetResolver)
Initializes an AnnotationCommandHandler based on the annotations on given
aggregateType, using the
given repository to add and load aggregate instances and the default ParameterResolverFactory. |
AggregateAnnotationCommandHandler(Class<T> aggregateType,
Repository<T> repository,
CommandTargetResolver commandTargetResolver,
ParameterResolverFactory parameterResolverFactory)
Initializes an AnnotationCommandHandler based on the annotations on given
aggregateType, using the
given repository to add and load aggregate instances and the given
parameterResolverFactory. |
| Modifier and Type | Method and Description |
|---|---|
Object |
handle(CommandMessage<Object> commandMessage,
UnitOfWork unitOfWork)
Handles the given
command. |
protected Object |
resolveReturnValue(CommandMessage<?> command,
T createdAggregate)
Resolves the value to return when the given
command has created the given aggregate. |
void |
subscribe()
Deprecated.
subscribing this handler should be done using
CommandBus.subscribe(String,
org.axonframework.commandhandling.CommandHandler). Retrieve the supported commands with supportedCommands(). |
static void |
subscribe(AggregateAnnotationCommandHandler<?> aggregateAnnotationCommandHandler,
CommandBus commandBus)
Subscribe the given
aggregateAnnotationCommandHandler to the given commandBus. |
static <T extends AggregateRoot> |
subscribe(Class<T> aggregateType,
Repository<T> repository,
CommandBus commandBus)
Subscribe a handler for the given aggregate type to the given command bus.
|
static <T extends AggregateRoot> |
subscribe(Class<T> aggregateType,
Repository<T> repository,
CommandBus commandBus,
CommandTargetResolver commandTargetResolver)
Subscribe a handler for the given aggregate type to the given command bus.
|
Set<String> |
supportedCommands()
Returns the set of commands supported by the annotated command handler managed by this adapter.
|
void |
unsubscribe()
Deprecated.
unsubscribing this handler should be done using
CommandBus.unsubscribe(String,
org.axonframework.commandhandling.CommandHandler). Retrieve the supported commands with supportedCommands(). |
public AggregateAnnotationCommandHandler(Class<T> aggregateType, Repository<T> repository)
aggregateType, using the
given repository to add and load aggregate instances.aggregateType - The type of aggregaterepository - The repository providing access to aggregate instancespublic AggregateAnnotationCommandHandler(Class<T> aggregateType, Repository<T> repository, CommandTargetResolver commandTargetResolver)
aggregateType, using the
given repository to add and load aggregate instances and the default ParameterResolverFactory.aggregateType - The type of aggregaterepository - The repository providing access to aggregate instancescommandTargetResolver - The target resolution strategypublic AggregateAnnotationCommandHandler(Class<T> aggregateType, Repository<T> repository, CommandTargetResolver commandTargetResolver, ParameterResolverFactory parameterResolverFactory)
aggregateType, using the
given repository to add and load aggregate instances and the given
parameterResolverFactory.aggregateType - The type of aggregaterepository - The repository providing access to aggregate instancescommandTargetResolver - The target resolution strategyparameterResolverFactory - The strategy for resolving parameter values for handler methods@Deprecated public AggregateAnnotationCommandHandler(Class<T> aggregateType, Repository<T> repository, CommandBus commandBus)
AggregateAnnotationCommandHandler(Class, org.axonframework.repository.Repository)
and subscribe the adapter to the command bus using
CommandBus.subscribe(String,
org.axonframework.commandhandling.CommandHandler). Alternatively, use
subscribe(Class, org.axonframework.repository.Repository, org.axonframework.commandhandling.CommandBus).aggregateType, to be
registered on the given commandBus.aggregateType - The type of aggregaterepository - The repository providing access to aggregate instancescommandBus - The command bus to register command handlers to@Deprecated public AggregateAnnotationCommandHandler(Class<T> aggregateType, Repository<T> repository, CommandBus commandBus, CommandTargetResolver commandTargetResolver)
AggregateAnnotationCommandHandler(Class, org.axonframework.repository.Repository,
org.axonframework.commandhandling.CommandTargetResolver) and subscribe the handler to the command
bus using CommandBus.subscribe(String,
org.axonframework.commandhandling.CommandHandler). Alternatively, use
subscribe(Class, org.axonframework.repository.Repository, org.axonframework.commandhandling.CommandBus,
org.axonframework.commandhandling.CommandTargetResolver).aggregateType, to be
registered on the given commandBus.aggregateType - The type of aggregaterepository - The repository providing access to aggregate instancescommandBus - The command bus to register command handlers tocommandTargetResolver - The target resolution strategypublic static <T extends AggregateRoot> AggregateAnnotationCommandHandler subscribe(Class<T> aggregateType, Repository<T> repository, CommandBus commandBus)
T - The type of aggregate this handler handles commands foraggregateType - The type of aggregaterepository - The repository providing access to aggregate instancescommandBus - The command bus to register command handlers topublic static <T extends AggregateRoot> AggregateAnnotationCommandHandler subscribe(Class<T> aggregateType, Repository<T> repository, CommandBus commandBus, CommandTargetResolver commandTargetResolver)
T - The type of aggregate this handler handles commands foraggregateType - The type of aggregaterepository - The repository providing access to aggregate instancescommandBus - The command bus to register command handlers tocommandTargetResolver - The target resolution strategypublic static void subscribe(AggregateAnnotationCommandHandler<?> aggregateAnnotationCommandHandler, CommandBus commandBus)
aggregateAnnotationCommandHandler to the given commandBus. The
command handler will be subscribed for each of the supported commands.aggregateAnnotationCommandHandler - The fully configured AggregateAnnotationCommandHandler instance to
subscribecommandBus - The command bus instance to subscribe to@PreDestroy @Deprecated public void unsubscribe()
CommandBus.unsubscribe(String,
org.axonframework.commandhandling.CommandHandler). Retrieve the supported commands with supportedCommands().unsubscribe in interface Subscribable@PostConstruct @Deprecated public void subscribe()
CommandBus.subscribe(String,
org.axonframework.commandhandling.CommandHandler). Retrieve the supported commands with supportedCommands().subscribe in interface Subscribablepublic Set<String> supportedCommands()
public Object handle(CommandMessage<Object> commandMessage, UnitOfWork unitOfWork) throws Throwable
CommandHandlercommand.handle in interface CommandHandler<Object>commandMessage - The message carrying the command to process.unitOfWork - The UnitOfWork the command is processed inThrowable - any exception that occurs during command handlingprotected Object resolveReturnValue(CommandMessage<?> command, T createdAggregate)
command has created the given aggregate.
This implementation returns the identifier of the created aggregate.
This method may be overridden to change the return value of this Command Handlercommand - The command being executedcreatedAggregate - The aggregate that has been created as a result of the commandCopyright © 2010-2014. All Rights Reserved.