class AccountActivateHandler implements ContextualRequestMessageHandler<Account> {

   @Override
   public MessageBody handleRequest(Account context, PlatformMessage msg) {
      String curState = context.getState();
      if(Account.AccountState.COMPLETE.equalsIgnoreCase(curState)) {
         return AccountCapability.ActivateResponse.instance();
      }
      
      validateAccount(context);
      
      context.setState(Account.AccountState.COMPLETE);
      accountDao.save(context);
      if(curState == null || Account.AccountState.SIGN_UP_1.equalsIgnoreCase(curState)) {
         AccountStateTransitionUtils.sendAccountCreatedNotification(context.getOwner(), platformBus);
      }
      sendValueChange(context);
      return AccountCapability.ActivateResponse.instance();
   }

   @Inject public  AccountActivateHandler(AccountDAO accountDao, 
   		PersonDAO personDao, 
   		PlatformMessageBus platformBus,
   		PlacePopulationCacheManager populationCacheMgr);

}