* Copyright (c) 2010-2011. Axon Framework
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
nullif the aggregate is newly created. This version must reflect the version number of the aggregate on which changes are applied.
Each time the aggregate is modified and stored in a repository, the version number must be increased by at least 1. This version number can be used by optimistic locking strategies and detection of conflicting concurrent modification.
Typically the sequence number of the last committed event on this aggregate is used as version number.
nullif no events were ever committed
true, it is an instruction to the repository to remove this instance at an appropriate time.
Repositories should not return any instances of Aggregates that return
trueif this aggregate was marked as deleted, otherwise