JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_finalize(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(RemoteSession, finalize);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  if (ras != NULL)
    ras->finalize();
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_finalize
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, finalize);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl != NULL)
    cl->finalize();
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_StateReporter_abortReport(
    JNIEnv* env, jobject jthis)
{
  JNIEntry(StateReporter, abortReport);
  StateReporter* reporter = StateReporter::getCppObject(jthis);
  CPPADDR_NULL_PTR(reporter,);
  reporter->abortReport();
}
JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_remote_StateReporter_finishReport(
    JNIEnv* env, jobject jthis)
{
  JNIEntry(StateReporter, finishReport);
  StateReporter* reporter = StateReporter::getCppObject(jthis);
  CPPADDR_NULL_PTR(reporter, SVN_INVALID_REVNUM);
  return reporter->finishReport();
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_nativeDispose(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(RemoteSession, nativeDispose);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  if (ras != NULL)
    ras->dispose(jthis);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_StateReporter_deletePath(
    JNIEnv* env, jobject jthis, jstring jpath)
{
  JNIEntry(StateReporter, deletePath);
  StateReporter* reporter = StateReporter::getCppObject(jthis);
  CPPADDR_NULL_PTR(reporter,);
  reporter->deletePath(jpath);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_StateReporter_nativeDispose(
    JNIEnv* env, jobject jthis)
{
  JNIEntry(StateReporter, nativeCreateInstance);
  StateReporter* reporter = StateReporter::getCppObject(jthis);
  CPPADDR_NULL_PTR(reporter,);
  reporter->dispose(jthis);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_StateReporter_finalize(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(StateReporter, finalize);
  StateReporter *reporter = StateReporter::getCppObject(jthis);
  if (reporter != NULL)
    reporter->finalize();
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_types_VersionExtended_00024LoadedLib_getVersion(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(VersionExtended$LoadedLib, getVersion);
  const svn_version_ext_loaded_lib_t *const lib = getLoadedLib(env, jthis);
  if (lib)
    return env->NewStringUTF(lib->version);
  return 0;
}
JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getRevisionByTimestamp(
    JNIEnv *env, jobject jthis, jlong timestamp)
{
  JNIEntry(RemoteSession, getDatedRevision);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, SVN_INVALID_REVNUM);

  return ras->getRevisionByTimestamp(timestamp);
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getReposRootUrl(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(RemoteSession, geRepostUUID);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->getReposRootUrl();
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_types_VersionExtended_getBuildDate(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(VersionExtended, getBuildDate);
  const VersionExtended *const vx = VersionExtended::getCppObject(jthis);
  if (vx)
    return env->NewStringUTF(vx->build_date());
  return 0;
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_types_VersionExtended_getRuntimeHost(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(VersionExtended, getRuntimeHost);
  const VersionExtended *const vx = VersionExtended::getCppObject(jthis);
  if (vx)
    return env->NewStringUTF(vx->runtime_host());
  return 0;
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getReposRelativePath(
    JNIEnv *env, jobject jthis, jstring jurl)
{
  JNIEntry(RemoteSession, getSessionUrl);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->getReposRelativePath(jurl);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_reparent(
    JNIEnv *env, jobject jthis, jstring jurl)
{
  JNIEntry(RemoteSession, getSessionUrl);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, );

  ras->reparent(jurl);
}
JNIEXPORT jbyteArray JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getRevisionProperty(
    JNIEnv *env, jobject jthis, jlong jrevision, jstring jname)
{
  JNIEntry(SVNReposAccess, getRevisionProperty);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->getRevisionProperty(jrevision, jname);
}
JNIEXPORT jboolean JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_nativeHasCapability(
    JNIEnv *env, jobject jthis, jstring jcapability)
{
  JNIEntry(RemoteSession, nativeHasCapability);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, false);

  return ras->hasCapability(jcapability);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_cancelOperation(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(RemoteSession, cancelOperation);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, );

  ras->cancelOperation();
}
JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getLocks(
    JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth)
{
  JNIEntry(RemoteSession, getLocks);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->getLocks(jpath, jdepth);
}
JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_stat(
    JNIEnv *env, jobject jthis, jstring jpath, jlong jrevision)
{
  JNIEntry(SVNReposAccess, stat);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->stat(jpath, jrevision);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_StateReporter_linkPath(
    JNIEnv* env, jobject jthis,
    jstring jurl, jstring jpath, jlong jrevision, jobject jdepth,
    jboolean jstart_empty, jstring jlock_token)
{
  JNIEntry(StateReporter, linkPath);
  StateReporter* reporter = StateReporter::getCppObject(jthis);
  CPPADDR_NULL_PTR(reporter,);
  reporter->linkPath(jurl, jpath, jrevision, jdepth, jstart_empty, jlock_token);
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_nativeChangeRevisionProperty(
    JNIEnv *env, jobject jthis, jlong jrevision, jstring jname,
    jbyteArray jold_value, jbyteArray jvalue)
{
  JNIEntry(RemoteSession, nativeChangeRevisionProperty);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, );

  return ras->changeRevisionProperty(jrevision, jname, jold_value, jvalue);
}
JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getLocations(
    JNIEnv *env, jobject jthis, jstring jpath, jlong jpeg_revision,
    jobject jlocation_revisions)
{
  JNIEntry(SVNReposAccess, getLocations);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->getLocations(jpath, jpeg_revision, jlocation_revisions);
}
JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_nativeGetFile(
    JNIEnv *env, jobject jthis, jlong jrevision, jstring jpath,
    jobject jcontents, jobject jproperties)
{
  JNIEntry(SVNReposAccess, nativeGetFile);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, SVN_INVALID_REVNUM);

  return ras->getFile(jrevision, jpath, jcontents, jproperties);
}
JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_getMergeinfo(
    JNIEnv *env, jobject jthis, jobject jpaths, jlong jrevision,
    jobject jinherit, jboolean jinclude_descendants)
{
  JNIEntry(SVNReposAccess, getMergeinfo);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras, NULL);

  return ras->getMergeinfo(jpaths, jrevision, jinherit, jinclude_descendants);
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_types_Version_getNumberTag(JNIEnv *env,
 jobject jthis)
{
  JNIEntry(Version, getNumberTag);
  jstring numtag = JNIUtil::makeJString(SVN_VER_NUMTAG);
  if (JNIUtil::isJavaExceptionThrown())
    return NULL;

  return numtag;
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_RemoteSession_nativeStatus(
    JNIEnv *env, jobject jthis, jstring jstatus_target, jlong jrevision,
    jobject jdepth, jobject jstatus_editor, jobject jreporter)
{
  JNIEntry(SVNReposAccess, nativeStatus);
  RemoteSession *ras = RemoteSession::getCppObject(jthis);
  CPPADDR_NULL_PTR(ras,);

  ras->status(jthis, jstatus_target, jrevision, jdepth,
              jstatus_editor, jreporter);
}
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_SVNClient_getAdminDirectoryName
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, getAdminDirectoryName);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  return cl->getAdminDirectoryName();
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_dispose
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, dispose);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  cl->dispose();
}
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_types_VersionExtended_dispose(
    JNIEnv *env, jobject jthis)
{
  JNIEntry(VersionExtended, dispose);
  VersionExtended *const vx = VersionExtended::getCppObject(jthis);
  if (vx == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  vx->dispose(jthis);
}