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 Subscribable
public Set<String> supportedCommands()
public Object handle(CommandMessage<Object> commandMessage, UnitOfWork unitOfWork) throws Throwable
CommandHandler
command
.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.