@Override
  protected void readFields(final ODocument document, final NugetApiKeyEntity entity) {
    String apiKey = document.field(P_APIKEY, OType.STRING);
    final PrincipalCollection principals =
        (PrincipalCollection) deserialize(document, P_PRINCIPALS);

    entity.setApiKey(apiKey.toCharArray());
    entity.setPrincipals(principals);
  }
 @Override
 protected void writeFields(final ODocument document, final NugetApiKeyEntity entity) {
   document.field(P_APIKEY, String.valueOf(entity.getApiKey()));
   document.field(P_PRIMARY_PRINCIPAL, entity.getPrincipals().getPrimaryPrincipal().toString());
   document.field(P_PRINCIPALS, serialize(entity.getPrincipals()));
 }