code: public <T> void vaultClass(Class<T> vaultClass)
    {
      if (! Vault.class.isAssignableFrom(vaultClass)) {
        throw new IllegalStateException();
      }
  
      Set<?> bogusMethods;
      if (Modifier.isAbstract(vaultClass.getModifiers())
          && (bogusMethods = getBogusMethods(vaultClass)).size() > 0) {
        throw error(
          "vault class '{0}' is invalid because the abstract methods '{1}' can't be generated.",
          vaultClass.getName(),
          bogusMethods);
      }
      
      TypeRef vaultRef = TypeRef.of(vaultClass);
      TypeRef keyRef = vaultRef.to(Vault.class).param(0);
      TypeRef assetRef = vaultRef.to(Vault.class).param(1);
      
      _validatorService.serviceClass(assetRef.rawClass());
      
      idValidation(assetRef.rawClass(), keyRef.rawClass());
      
      createValidation(vaultClass, assetRef.rawClass(), keyRef.rawClass());
      findValidation(vaultClass, assetRef.rawClass(), keyRef.rawClass());
    }
docs: {@code Web.service(Class)} validation