Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/javahl/native/CreateJ.cpp view on Meta::CPAN
jobject jaction = EnumMapper::mapChangePathAction(log_item->action);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jobject jnodeKind = EnumMapper::mapNodeKind(log_item->node_kind);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jlong jcopyFromRev = log_item->copyfrom_rev;
jobject jcp = env->NewObject(clazzCP, midCP, jpath, jcopyFromRev,
jcopyFromPath, jaction, jnodeKind,
EnumMapper::mapTristate(log_item->text_modified),
EnumMapper::mapTristate(log_item->props_modified));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
return env->PopLocalFrame(jcp);
}
jobject
CreateJ::Status(svn_wc_context_t *wc_ctx,
const svn_client_status_t *status,
apr_pool_t *pool)
{
if (status == NULL)
return NULL;
JNIEnv *env = JNIUtil::getEnv();
// Create a local frame for our references
env->PushLocalFrame(LOCAL_FRAME_SIZE);
if (JNIUtil::isJavaExceptionThrown())
return NULL;
jclass clazz = env->FindClass(JAVA_PACKAGE"/types/Status");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
static jmethodID mid = 0;
if (mid == 0)
{
mid = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;Ljava/lang/String;"
"L"JAVA_PACKAGE"/types/NodeKind;"
"JJJLjava/lang/String;"
"L"JAVA_PACKAGE"/types/Status$Kind;"
"L"JAVA_PACKAGE"/types/Status$Kind;"
"L"JAVA_PACKAGE"/types/Status$Kind;"
"L"JAVA_PACKAGE"/types/Status$Kind;"
"ZZZZZL"JAVA_PACKAGE"/types/Lock;"
"L"JAVA_PACKAGE"/types/Lock;"
"JJL"JAVA_PACKAGE"/types/NodeKind;"
"Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;Ljava/lang/String;)V");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
}
/* ### Calculate the old style text_status value to make
### the tests pass. It is probably better to do this in
### the tigris package and then switch the apache package
### to three statuses. */
jstring jUrl = NULL;
jobject jNodeKind = NULL;
jlong jRevision =
org_apache_subversion_javahl_types_Revision_SVN_INVALID_REVNUM;
jlong jLastChangedRevision =
org_apache_subversion_javahl_types_Revision_SVN_INVALID_REVNUM;
jlong jLastChangedDate = 0;
jstring jLastCommitAuthor = NULL;
jobject jLocalLock = NULL;
jstring jChangelist = NULL;
jstring jMovedFromAbspath = NULL;
jstring jMovedToAbspath = NULL;
enum svn_wc_status_kind text_status = status->node_status;
/* Avoid using values that might come from prop changes */
if (text_status == svn_wc_status_modified
|| text_status == svn_wc_status_conflicted)
text_status = status->text_status;
enum svn_wc_status_kind repos_text_status = status->repos_node_status;
if (repos_text_status == svn_wc_status_modified
|| repos_text_status == svn_wc_status_conflicted)
repos_text_status = status->repos_text_status;
jboolean jIsConflicted = (status->conflicted == 1) ? JNI_TRUE : JNI_FALSE;
jobject jTextType = EnumMapper::mapStatusKind(text_status);
jobject jPropType = EnumMapper::mapStatusKind(status->prop_status);
jobject jRepositoryTextType = EnumMapper::mapStatusKind(repos_text_status);
jobject jRepositoryPropType = EnumMapper::mapStatusKind(
status->repos_prop_status);
jboolean jIsCopied = (status->copied == 1) ? JNI_TRUE: JNI_FALSE;
jboolean jIsLocked = (status->wc_is_locked == 1) ? JNI_TRUE: JNI_FALSE;
jboolean jIsSwitched = (status->switched == 1) ? JNI_TRUE: JNI_FALSE;
jboolean jIsFileExternal = (status->file_external == 1) ? JNI_TRUE
: JNI_FALSE;
jstring jPath = JNIUtil::makeJString(status->local_abspath);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jobject jReposLock = CreateJ::Lock(status->repos_lock);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
if (status->repos_root_url)
{
jUrl = JNIUtil::makeJString(svn_path_url_add_component2(
status->repos_root_url,
status->repos_relpath,
pool));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
}
jlong jOODLastCmtRevision = status->ood_changed_rev;
( run in 2.221 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )