@Override
 public Registration createRegistration(Registration registration) {
   ShardedNHRegistrationId regId = createNewShardedId();
   Registration intraHubReg = (Registration) registration.clone();
   intraHubReg.setRegistrationId(regId.getRegistrationId());
   Registration returned = hubs.get(regId.getShard()).createRegistration(intraHubReg);
   returned.setRegistrationId(
       new ShardedNHRegistrationId(regId.getShard(), regId.getRegistrationId()).toString());
   return returned;
 }
 @Override
 public Registration getRegistration(String registrationId) {
   ShardedNHRegistrationId regId = new ShardedNHRegistrationId(registrationId);
   Registration intraHubReg =
       hubs.get(regId.getShard()).getRegistration(regId.getRegistrationId());
   intraHubReg.setRegistrationId(regId.toString());
   return intraHubReg;
 }
 @Override
 public void deleteRegistration(String registrationId) {
   ShardedNHRegistrationId regId = new ShardedNHRegistrationId(registrationId);
   hubs.get(regId.getShard()).deleteRegistration(regId.getRegistrationId());
 }